作者cole945 (躂躂..)
看板LinuxDev
標題Re: [問題] 想請問Unix Network Programming一書的 …
時間Wed Apr 2 00:49:15 2008
※ 引述《king19880326 (OK的啦~我都可以接受)》之銘言:
: test_unix_programming.c:(.text+0xed): undefined reference to
: `pthread_sigmask'
: 可是我去看 apue.h 裡面 ,都有這些函式
在C/C++, definition 與 declaration 是不同的東西,
你說的 apue.h 是指 declaration,
而錯誤訊息是說你少了 definition..
: 不知道是那裡出現了問題
: 希望各位大大指點一下 告訴我該怎麼樣才能使用apue.h @@
: 感謝大家<(_ _)>
所以你編譯時應該要告訴linker你要與 pthread library 連結,
這類的問題通常是加入 -l 參數來指定要與哪個 library 連結,
不過連結 pthread 應該要用哪個參數, man gcc 搜 pthread, 應該會找到一些說明..
可能是加上 -pthreads、-pthread或 -lpthread 之類的參數..
你man man看吧 .__."
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.138.126
1F:推 king19880326:那我編譯後的函式庫應該是在哪邊呢?? 04/02 00:54
2F:→ cole945:從錯誤訊息只看得出來你正在編一個測試程式 @@ 04/02 00:59
3F:→ cole945:你把程式庫編到哪去了..要問施主你自己呀 .__. 04/02 00:59
4F:→ cole945:看看有沒有 README或 INSTALL 之類的說明檔吧 @.@ 04/02 01:00
5F:推 king19880326:如何能夠使gcc 自動找到我的函式庫而不用多加參數呢? 04/02 01:54
6F:推 aprotoss:看你是編靜態還是動態的library囉,可以使用 04/02 09:26
7F:→ aprotoss:ldd /path/to/your/program 來知道函式庫位置,若沒有任 04/02 09:26
8F:→ aprotoss:何函式庫就應該是靜態的函式庫(預設都是動態的樣子) 04/02 09:27
9F:→ aprotoss:一定要加-lm之類的參數,明確要求linker去link什麼東西 04/02 09:28
10F:推 king19880326:感謝@@ 04/06 11:10