1. 程式人生 > >Linux之多源文件編譯(轉)

Linux之多源文件編譯(轉)

鏈接 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之多源文件編譯(轉)