1. 程式人生 > >GCC 命令列詳解 -L 指定庫的路徑 -l 指定需連線的庫名

GCC 命令列詳解 -L 指定庫的路徑 -l 指定需連線的庫名

o.x,/lib/libm.so.6又連結到/lib/libm-2.3.2.so,如果沒有這樣的連結,還是會出錯,因為ld只會找libxxxx.so,所以如果你要用到xxxx庫,而只有libxxxx.so.x或者libxxxx-x.x.x.so,做一個連結就可以了ln -s libxxxx-x.x.x.so libxxxx.so 手工來寫連結引數總是很麻煩的,還好很多庫開發包提供了生成連結引數的程式,名字一般叫xxxx-config,一般放在/usr/bin目錄下,比如gtk1.2的連結引數生成程式是gtk-config,執行gtk-config --libs就能得到以下輸出"-L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm",這就是編譯一個gtk1.2程式所需的gtk連結引數,
xxx-config除了--libs引數外還有一個引數是--cflags用來生成標頭檔案包含目錄的,也就是-I引數,在下面我們將會講到。你可以試試執行gtk-config--libs --cflags,看看輸出結果。現在的問題就是怎樣用這些輸出結果了,最笨的方法就是複製貼上或者照抄,聰明的辦法是在編譯命令列里加入這個`xxxx-config --libs --cflags`,比如編譯一個gtk程式:gcc gtktest.c `gtk-config --libs --cflags`這樣就差不多了。注意`不是單引號,而是1鍵左邊那個鍵