Chinaunix首页 | 论坛 | 博客
  • 博客访问: 171103
  • 博文数量: 65
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-16 08:59
文章分类

全部博文(65)

文章存档

2011年(3)

2010年(3)

2009年(43)

2008年(16)

我的朋友

分类: LINUX

2009-08-04 11:48:14

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) |
0

上一篇:init 設定檔錯誤

下一篇:rpm and srpm

给主人留下些什么吧!~~