最近一直強迫自己用指令行的方式來編譯連接配接運作檔案,當然這個在單個檔案的情況下還是很好搞定的嘛。。。
不過在開始學會把一個程式分成幾個檔案後(有頭檔案之類的和其他的幾個c/cpp檔案),不知道怎麼編譯運作就是個問題了,而且會出現一些常見錯誤。
下面主要介紹下常用的方式:
單個檔案的情況:
g++ filename.cpp
這是最簡單的形式,linux下預設輸出是a.out(windows下預設是a.exe),另外可以用 -o 指令指定輸出名,指令形式如下:
g++ filename.cpp -o filename
多個檔案的情況(假定有2個檔案檔案分别是1.cpp和2.cpp):
第一種方法
g++ -c 1.cpp -o 1.o
g++ -c 2.cpp -o 2.o
g++ 1.o 2.o -o prog (或者linux下輸入g++ 1.o 2.o -o prog.out )
第二種方法
單個檔案一般用g++ -o filename filename.cpp
多個檔案時用 g++ -o file file1.cpp file2.cpp ...
注意:gcc可以用來編譯連結.c源程式,gcc同樣可以編譯.cpp檔案,但是不能連結.cpp檔案生成可執行檔案。隻有g++可以編譯并且連結.cpp,g++在編譯.cpp檔案的時候自動調用gcc進行源檔案的編譯。
當然上面的使用方式具體選擇哪個就看個人喜好了。
更多相關資訊可參考如下的文章:
gcc/g++執行的步驟及參數簡介
linux下編譯器gcc/g++編譯步驟