加個-g 是爲了gdb 調試用
g++ -I 尋找頭文件選項 (linux默認路徑:頭文件在/usr/include/下),不在這個路徑下就要用-I指定。
gcc foo.cpp -I/home/include/ -o foo
-L 庫依賴選項 (linux默認路徑:庫文件在/usr/lib/下),不在這個路徑下就要用-L指定。
g++ foo.cpp -L/home/lib/ -lfoo -o foo
庫就是將源文件編譯之後生成的目標文件的集合。
庫命名以lib開頭。
庫有靜態庫(通常以.a結尾)和動態庫(通常以.so結尾)
默認情況下,g++以動態庫形式連接。如果要靜態庫連接則要用-static指定(g++ foo.cpp -L/home/lib/ -static -lfoo -o foo)
-IDIRECTORY 指定額外的頭文件搜索路徑DIRECTORY。
-LDIRECTORY 指定額外的函數庫搜索路徑DIRECTORY。
-lLIBRARY 連接時搜索指定的函數庫LIBRARY。
直接跟 沒有空格!
比如用到protobuf的頭文件和庫文件:
g++ -0 xxx xxxxx.cpp -I~/protobuf_install/include -L~/protobuf_install/lib -lprotobuf
-M
生成文件關聯的信息。包含目標文件所依賴的所有源代碼你可以用gcc -M hello.c
來測試一下,很簡單。
-MM
和上面的那個一樣,但是它將忽略由#include<file>造成的依賴關係。
-MD
和-M相同,但是輸出將導入到.d的文件裏面
-MMD
和-MM相同,但是輸出將導入到.d的文件裏面
ldd命令用於打印程序或者庫文件所依賴的共享庫列表。
來自: http://man.linuxde.net/ldd
eclipse c++ 插件地址:
http://download.eclipse.org/tools/cdt/releases/kepler/