1. 程式人生 > >gcc和g++編譯器的區別

gcc和g++編譯器的區別

  1. 對於.c檔案gcc當做c語言處理,g++當做c++處理;對於.cpp檔案gcc和g++均當做c++處理;
  2. g++編譯時實際上是呼叫gcc進行編譯;
  3. gcc不能自動連結庫檔案,一般用g++來連結庫檔案,非要用gcc的話,一般使用gcc -lstdc++命令;
  4. extern “c”對於gcc和g++沒有區別;
  5. 實際使用時只需安裝gcc和g++中的一個就行了,如果使用gcc,編譯直接用gcc就行了,連結要加上-lstdc++引數;如果使用g++,編譯時實際還是呼叫gcc,連結直接使用g++即可;

關於包含庫檔案標頭檔案的說明:以gtd庫檔案為例,庫檔案一般是libgtd.so格式的檔案,如果是libgtd-***.so或者其他格式,可以通過軟連結命令轉化成libgtd.so格式,ln -s libgtd-***.so libgtd.so。一般庫檔案如果是放在/lib,/usr/lib,/usr/local/lib目錄下,則無需額外處理,編譯連結時-lgtd會自動找到對應檔案不會報錯,但是如果不在對應目錄,則需要加上-L /所在目錄 -lgtd才能找到對應的庫檔案。標頭檔案一般是採用原始檔中用#include命令包含,而不是採用-include引數包含,標頭檔案如果放在/usr/include目錄下則會自動找到不會報錯,否則編譯連結時需要使用-I /所在目錄才能正確找到。
編譯連結命令示例:
g++ test.cpp -o test.txt -L /mytest/lib -lgtd -I /mytest/include