作者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