root@www ~]# gcc -c hello.c
#gcc -o hello hello.o
主、副程式連結:副程式的編譯
root@www ~]# gcc -c thanks.c thanks_2.c
#gcc -o thanks thanks.o thanks_2.o
呼叫外部函式庫:加入連結的函式庫
編譯時加入額外函式庫連結的方式:
root@www ~]# gcc sin.c -lm -L/lib -L/usr/lib <==重點在 -lm
[root@www ~]# ./a.out <==嘗試執行新檔案!
特別注意,使用 gcc 編譯時所加入的那個 -lm 是有意義的,他可以拆開成兩部份來看:
- -l :是『加入某個函式庫(library)』的意思,
- m :則是 libm.so 這個函式庫,其中, lib 與副檔名(.a 或 .so)不需要寫
所以 -lm 表示使用 libm.so (或 libm.a) 這個函式庫的意思~至於那個 -L 後面接的路徑呢?這表示: 『我要的函式庫 libm.so 請到 /lib 或 /usr/lib 裡面搜尋!』
上面的說明很清楚了吧!不過,要注意的是,由於 Linux 預設是將函式庫放置在 /lib 與 /usr/lib 當中,所以你沒有寫 -L/lib 與 -L/usr/lib 也沒有關係的!不過,萬一哪天你使用的函式庫並非放置在這兩個目錄下,那麼 -L/path 就很重要了!否則會找不到函式庫喔!
阅读(405) | 评论(0) | 转发(0) |