Linux之多源文件編譯(轉)
阿新 • • 發佈:2017-08-27
鏈接 spa 博客 關於 可能 st2 linu 沒有 單獨
多源文件的編譯方法
如果有多個源文件,基本上有兩種編譯方法:
[假設有兩個源文件為test1.c和test2.c]
1. 多個文件一起編譯
用法:
gcc test1.c test2.c -o test
作用:將testfun.c和test.c分別編譯後鏈接成test可執行文件。
2. 分別編譯各個源文件,之後對編譯後輸出的目標文件鏈接。
用法:
gcc -c test1.c //將test1.c編譯成test1.o gcc -c test2.c //將test2.c編譯成test2.o gcc -o test1.o test2.o -o test //將test1.o和test2.o鏈接成test
以上兩種方法相比較,第一種方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
註:如果要編譯的文件都在同一個目錄下,可以用通配符來進行編譯
gcc *.c -o
如果是一個項目的話,可能會有上百個文件,上述的編譯方法效率極低,所以我們要把上述的編譯過程寫進以下一個文本文件中:Linux中稱為makefile,編寫makefile不是容易的事情,現在還沒有學習,以後單獨寫一篇關於makefile的博客吧。其實實際中還有很多如cmake,automake等編譯工具使用。
Linux之多源文件編譯(轉)