DOC PREVIEW
CMU 15441 Computer Networking - Makefiles & Project 1 Q&A

This preview shows page 1-2-21-22 out of 22 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Makefiles & Project 1 Q&A15-441 Recitation 2441 StaffOutline• gcc• make and Makefile• Useful commands• Project 1 Q&ASimple gccIf we have files:• prog.c: The main program file• lib.c: Library .c file• lib.h: Library header file% gcc -c prog.c -o prog.o% gcc -c lib.c -o lib.o% gcc lib.o prog.o -o binarygcc flags• Useful flags1. -g: debugging hook2. -Wall: all warning3. -Werror: treat warning as errors4. -O2, -O3: optimization5. -DDEBUG: macro for DEBUG (#define DEBUG)Examples% gcc -g -Wall -Werror -c prog.c -o prog.o% gcc -g -Wall -Werror -c lib.c -o lib.o% gcc -g -Wall -Werror lib.o prog.o -o binaryBut Don’t Repeat Yourself!Makefile% gcc -g -Wall -Werror -c prog.c -o prog.o% gcc -g -Wall -Werror -c lib.c -o lib.o% gcc -g -Wall -Werror lib.o prog.o -o binaryCC = gccCFLAGS = -g -Wall -WerrorOUTPUT = binaryMakefiletarget: dependency1 dependency2 ...unix command (start line with TAB)unix command...% gcc lib.o prog.o -o binarybinary: lib.o prog.ogcc lib.o prog.o -o binarybinary: lib.o prog.ogcc -g -Wall lib.o prog.o -o binarylib.o: lib.cgcc -g -Wall -c lib.c -o lib.oprog.o: prog.cgcc -g -Wall -c prog.c -o prog.oclean:rm *.o binarybinary: lib.o prog.ogcc -g -Wall lib.o prog.o -o binarylib.o: lib.cgcc -g -Wall -c lib.c -o lib.oprog.o: prog.cgcc -g -Wall -c prog.c -o prog.oclean:rm *.o binaryCC = gccCFLAGS = -g -WallOUTPUT = binary$(OUTPUT): lib.o prog.o$(CC) $(CFLAGS) lib.o prog.o -o binarylib.o: lib.c$(CC) $(CFLAGS) -c lib.c -o lib.oprog.o: prog.c$(CC) $(CFLAGS) -c prog.c -o prog.oclean:rm *.o $(OUTPUT)CC = gccCFLAGS = -g -WallOUTPUT = binary$(OUTPUT): lib.o prog.o$(CC) $(CFLAGS) lib.o prog.o -o binarylib.o: lib.c$(CC) $(CFLAGS) -c lib.c -o lib.oprog.o: prog.c$(CC) $(CFLAGS) -c prog.c -o prog.oclean:rm *.o $(OUTPUT)CC = gccCFLAGS = -g -WallOUTPUT = binaryOBJFILES = lib.o prog.o$(OUTPUT): $(OBJFILES)$(CC) $(CFLAGS) $(OBJFILES) -o binarylib.o: lib.c$(CC) $(CFLAGS) -c lib.c -o lib.oprog.o: prog.c$(CC) $(CFLAGS) -c prog.c -o prog.oclean:rm *.o $(OUTPUT)CC = gccCFLAGS = -g -WallOUTPUT = binaryOBJFILES = lib.o prog.o$(OUTPUT): $(OBJFILES)$(CC) $(CFLAGS) $(OBJFILES) -o binarylib.o: lib.c$(CC) $(CFLAGS) -c lib.c -o lib.oprog.o: prog.c$(CC) $(CFLAGS) -c prog.c -o prog.oclean:rm *.o $(OUTPUT)CC = gccCFLAGS = -g -WallOUTPUT = binaryOBJFILES = lib.o prog.o$(OUTPUT): $(OBJFILES)$(CC) $(CFLAGS) $(OBJFILES) -o binary%.o: %.c# $<: dependency (%.c)# $@: target (%.o)$(CC) $(CFLAGS) -c $< -o $@clean:rm *.o $(OUTPUT)Simple Test Script% ./server 6667 &% cat testfile.01 | ./testscript.py% cat testfile.02 | ./testscript.py% killall -9 serverSimple Test Script#/bin/shecho “Starting server on port 6667.”./server 6667 &SERVERPID = $!echo “Running test files.”cat testfile.01 | ./testscript.pycat testfile.02 | ./testscript.pyecho “Killing server process.”kill $(SERVERPID)CC = gccCFLAGS = -g -WallOUTPUT = binaryOBJFILES = lib.o prog.oall: $(OUTPUT)$(OUTPUT): $(OBJFILES)$(CC) $(CFLAGS) $(OBJFILES) -o binary%.o: %.c# $<: dependencies (%.c)# $@: target (%.o)$(CC) $(CFLAGS) -c $< -o $@clean:rm *.o $(OUTPUT)CC = gccCFLAGS = -g -WallOUTPUT = binaryOBJFILES = lib.o prog.oall: $(OUTPUT) test$(OUTPUT): $(OBJFILES)$(CC) $(CFLAGS) $(OBJFILES) -o binary%.o: %.c# $<: dependencies (%.c)# $@: target (%.o)$(CC) $(CFLAGS) -c $< -o $@test: $(OUTPUT)sh ./testscript.shclean:rm *.o $(OUTPUT)Use Makefile% make% make test% make cleanGoogle– “makefile example”– “makefile template”– “make tutorial”Useful Unix Commands• find “func_name” in files% grep -r func_name .• replace “bad_func_name” to “good_func_name”% sed -e “s/bad_func_name/good_func_name/g”\prog.c > prog.c.newUseful Unix Commands• find a file named “prog.c”% find -name prog.c• download files from Internet% wget http://address/to/file.tar.gz• untar and unzip the file% tar xzvf file.tar.gzProject 1• Checkpoint 2– Echo server– Handle multiple clients– Handle TCP framing • Q &


View Full Document

CMU 15441 Computer Networking - Makefiles & Project 1 Q&A

Documents in this Course
Lecture

Lecture

14 pages

Lecture

Lecture

19 pages

Lecture

Lecture

14 pages

Lecture

Lecture

78 pages

Lecture

Lecture

35 pages

Lecture

Lecture

4 pages

Lecture

Lecture

4 pages

Lecture

Lecture

29 pages

Lecture

Lecture

52 pages

Lecture

Lecture

40 pages

Lecture

Lecture

44 pages

Lecture

Lecture

41 pages

Lecture

Lecture

38 pages

Lecture

Lecture

40 pages

Lecture

Lecture

13 pages

Lecture

Lecture

47 pages

Lecture

Lecture

49 pages

Lecture

Lecture

7 pages

Lecture

Lecture

18 pages

Lecture

Lecture

15 pages

Lecture

Lecture

74 pages

Lecture

Lecture

35 pages

Lecture

Lecture

17 pages

lecture

lecture

13 pages

Lecture

Lecture

21 pages

Lecture

Lecture

14 pages

Lecture

Lecture

53 pages

Lecture

Lecture

52 pages

Lecture

Lecture

40 pages

Lecture

Lecture

11 pages

Lecture

Lecture

20 pages

Lecture

Lecture

39 pages

Lecture

Lecture

10 pages

Lecture

Lecture

40 pages

Lecture

Lecture

25 pages

lecture

lecture

11 pages

lecture

lecture

7 pages

Lecture

Lecture

10 pages

lecture

lecture

46 pages

lecture

lecture

7 pages

Lecture

Lecture

8 pages

lecture

lecture

55 pages

lecture

lecture

45 pages

lecture

lecture

47 pages

lecture

lecture

39 pages

lecture

lecture

33 pages

lecture

lecture

38 pages

lecture

lecture

9 pages

midterm

midterm

16 pages

Lecture

Lecture

39 pages

Lecture

Lecture

14 pages

Lecture

Lecture

46 pages

Lecture

Lecture

8 pages

Lecture

Lecture

40 pages

Lecture

Lecture

11 pages

Lecture

Lecture

41 pages

Lecture

Lecture

38 pages

Lecture

Lecture

9 pages

Lab

Lab

3 pages

Lecture

Lecture

53 pages

Lecture

Lecture

51 pages

Lecture

Lecture

38 pages

Lecture

Lecture

42 pages

Lecture

Lecture

49 pages

Lecture

Lecture

63 pages

Lecture

Lecture

7 pages

Lecture

Lecture

51 pages

Lecture

Lecture

35 pages

Lecture

Lecture

29 pages

Lecture

Lecture

65 pages

Lecture

Lecture

47 pages

Lecture

Lecture

41 pages

Lecture

Lecture

41 pages

Lecture

Lecture

32 pages

Lecture

Lecture

35 pages

Lecture

Lecture

15 pages

Lecture

Lecture

52 pages

Lecture

Lecture

16 pages

Lecture

Lecture

4 pages

lecture

lecture

27 pages

lecture04

lecture04

46 pages

Lecture

Lecture

46 pages

Lecture

Lecture

13 pages

lecture

lecture

41 pages

lecture

lecture

38 pages

Lecture

Lecture

40 pages

Lecture

Lecture

25 pages

Lecture

Lecture

38 pages

lecture

lecture

11 pages

Lecture

Lecture

42 pages

Lecture

Lecture

12 pages

Lecture

Lecture

36 pages

Lecture

Lecture

46 pages

Lecture

Lecture

35 pages

Lecture

Lecture

34 pages

Lecture

Lecture

9 pages

lecture

lecture

49 pages

class03

class03

39 pages

Lecture

Lecture

8 pages

Lecture 8

Lecture 8

42 pages

Lecture

Lecture

20 pages

lecture

lecture

29 pages

Lecture

Lecture

9 pages

lecture

lecture

46 pages

Lecture

Lecture

12 pages

Lecture

Lecture

24 pages

Lecture

Lecture

41 pages

Lecture

Lecture

37 pages

lecture

lecture

59 pages

Lecture

Lecture

47 pages

Lecture

Lecture

34 pages

Lecture

Lecture

38 pages

Lecture

Lecture

28 pages

Exam

Exam

17 pages

Lecture

Lecture

21 pages

Lecture

Lecture

15 pages

Lecture

Lecture

9 pages

Project

Project

20 pages

Lecture

Lecture

40 pages

L13b_Exam

L13b_Exam

17 pages

Lecture

Lecture

48 pages

Lecture

Lecture

10 pages

Lecture

Lecture

52 pages

21-p2p

21-p2p

16 pages

lecture

lecture

77 pages

Lecture

Lecture

18 pages

Lecture

Lecture

62 pages

Lecture

Lecture

25 pages

Lecture

Lecture

24 pages

Project

Project

20 pages

Lecture

Lecture

47 pages

Lecture

Lecture

38 pages

Lecture

Lecture

35 pages

Roundup

Roundup

45 pages

Lecture

Lecture

47 pages

Lecture

Lecture

39 pages

Lecture

Lecture

13 pages

Midterm

Midterm

22 pages

Project

Project

26 pages

Lecture

Lecture

11 pages

Project

Project

27 pages

Lecture

Lecture

10 pages

Lecture

Lecture

50 pages

Lab

Lab

9 pages

Lecture

Lecture

30 pages

Lecture

Lecture

6 pages

r05-ruby

r05-ruby

27 pages

Lecture

Lecture

8 pages

Lecture

Lecture

28 pages

Lecture

Lecture

30 pages

Project

Project

13 pages

Lecture

Lecture

11 pages

Lecture

Lecture

12 pages

Lecture

Lecture

48 pages

Lecture

Lecture

55 pages

Lecture

Lecture

36 pages

Lecture

Lecture

17 pages

Load more
Download Makefiles & Project 1 Q&A
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Makefiles & Project 1 Q&A and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Makefiles & Project 1 Q&A 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?