亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 一個GCC鏈接動態(tài)庫時的怪事 [打印本頁]

作者: wwxbei    時間: 2012-07-02 16:39
標(biāo)題: 一個GCC鏈接動態(tài)庫時的怪事

寫了個C代碼,其中用到了pthread庫函數(shù), 于是用以下命令編譯:
gcc -lpthread test.c -o test
結(jié)果編譯不過,顯示undefined reference to `pthread_create' 等等。
思索良久無解。 后無意中寫成:
gcc test.c -o test -lpthread
結(jié)果順利編譯成功。

難道-lxxx這種選項(xiàng)必須要放在后面嗎? 大家遇到過這種現(xiàn)象嗎?

作者: zhaohongjian000    時間: 2012-07-02 16:45
遇到過

http://www.cppblog.com/findingworld/archive/2008/11/09/66408.html
作者: MMMIX    時間: 2012-07-02 16:51
wwxbei 發(fā)表于 2012-07-02 16:39
寫了個C代碼,其中用到了pthread庫函數(shù), 于是用以下命令編譯:
gcc -lpthread test.c -o test
結(jié)果編譯 ...


使用 Pthread 的話 gcc 最好用 -pthread 編譯,它不光會鏈接對應(yīng)的庫,還會自行定義需要的宏。
作者: sonicling    時間: 2012-07-02 17:04
這也就是為啥gcc不檢查庫里面的重名符號。
作者: wwxbei    時間: 2012-07-02 17:15
果然-pthread可以。 在我印象里只有 -l 加庫名 這種寫法, 為啥 -pthread 也可以呢?

MMMIX 發(fā)表于 2012-07-02 16:51
使用 Pthread 的話 gcc 最好用 -pthread 編譯,它不光會鏈接對應(yīng)的庫,還會自行定義需要的宏。

作者: adam8157    時間: 2012-07-02 17:42
*nix下鏈接確實(shí)是講究順序的

推薦本書: linkers and loaders
作者: MMMIX    時間: 2012-07-02 17:47
wwxbei 發(fā)表于 2012-07-02 17:15
果然-pthread可以。 在我印象里只有 -l 加庫名 這種寫法, 為啥 -pthread 也可以呢?


這個 gcc 做了特殊處理。
作者: egmkang    時間: 2012-07-03 00:47
碰到過,以前把physx集成到我們代碼里面去,他給了n多的靜態(tài)庫,然后有依賴順序,后來給搞煩了
每次新版本,都是把靜態(tài)庫解壓,然后再打包成一個庫...
作者: captivated    時間: 2012-07-03 01:18
回復(fù) 2# zhaohongjian000


    鏈接不錯. 學(xué)習(xí)了.
作者: liwangli1983    時間: 2012-07-03 07:26
只有靜態(tài)庫才講究鏈接順序吧,看來那個鏈接的是libpthread.a了……
作者: MMMIX    時間: 2012-07-03 10:42
liwangli1983 發(fā)表于 2012-07-03 07:26
只有靜態(tài)庫才講究鏈接順序吧,


這個是和所用的 ld 有關(guān)的,和動態(tài)靜態(tài)什么的沒有什么關(guān)系。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2