1、基本編譯命令
gcc prog.c -o prog
prog.c 為gcc的輸入命令
prog 為輸出檔案,可執行檔案
file prog可查看檔案型別
./prog 則執行prog檔案
./prog > output 輸出資訊被定向到 output 檔案中
2、多檔案編譯
如果需要除錯,須在gcc后加 -g -Wall -Wshadow
gcc -g -Wall -Wshadow -c prog1.c
gcc -g -Wall -Wshadow -c prog2.c
gcc -g -Wall -Wshadow prog1.o prog2.o -o prog
--------前兩行生成 .o 檔案,后面編譯
不過上面很麻煩,所以引入make工具
3、makefile 檔案
我們用vim Makefile創建該檔案,檔案內容如下:
#后號是注釋
GCC = gcc
CFLAGS = -g -Wall -Wshadow
#用識別符號代替
gcc -g -Wall -Wshadow #面向用戶時 -g 用 -O 代替 大寫的O
prog: prog1.o prog2.o
$(GCC) $(CFLAGS) prog1.o prog2.o -o prog
#上面的Tab鍵不能用空格代替,識別符號寫入$()中
prog1.o: prog1.c
$(GCC) $(CFLAGS) -c prog1.c
#用“ : ”表示依賴關系,如果prog1.c更新了,或者沒有 prog1.o,此句被執行,
prog2.o: prog2.c
$(GCC) $(CFLAGS) -c prog2.c
testall: test0 test1 test2
test0: prog
./prog inputs/input0 > outputs/output0
test1: prog
./prog inputs/input1 > outputs/output1
test2: prog
./prog inputs/input2 > outputs/output2
#測驗用例
clean:
/bin/rm -f *.o prog ourputs/*
#退出前洗掉計算機生成的檔案
#退出
Linux終端下輸入
make
--------默認Makefile檔案會被編譯
make test0
--------測驗用例test0
make test1
-------測驗用例test1
make clean
--------所有的檔案都被洗掉
make -f 檔案名
--------檔案名是Makefile格式的檔案會被編譯
make clean -f 檔案名
--------所有檔案被洗掉,執行檔案名里面的clean
4、使用valgrind檢查記憶體訪問錯誤
valgrind --tool=memcheck --verbose ./prog
5、覆寫測驗(有可能有的條件不會被執行,測驗檔案為coverage.c)
gcc -g -Wall -Wshadow -fprofile-arcs -ftest-coverage coverage.c -o cov
./cov
--------生成coverage.gcda和coverage.gcno兩個檔案
gcov coverage.c
--------出現一下提示
File 'coverage.c'
Lines executed:71.43% of 7
Creating 'coverage.c.gcov'
打開coverage.c.gcov 檔案,“###”是從未執行過的代碼行
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/148745.html
標籤:其他
上一篇:用戶與組管理,磁盤管理
下一篇:GCC編譯命令的學習
