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

Chinaunix

標(biāo)題: 一個(gè)GCC鏈接動(dòng)態(tài)庫(kù)時(shí)的怪事 [打印本頁(yè)]

作者: wwxbei    時(shí)間: 2012-07-02 16:39
標(biāo)題: 一個(gè)GCC鏈接動(dòng)態(tài)庫(kù)時(shí)的怪事

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

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

作者: zhaohongjian000    時(shí)間: 2012-07-02 16:45
遇到過(guò)

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


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

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

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

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


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


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


這個(gè)是和所用的 ld 有關(guān)的,和動(dòng)態(tài)靜態(tài)什么的沒(méi)有什么關(guān)系。




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