xcode下编程出现clang: error: linker command failed with exit code 1,不知道错误原因,请教前辈!

pengfoo 2011-11-16 08:37:58
在xcode下编程,利用rtp的封装库ortp来改写服务器端的程序(原来服务器端用另外一个rtp的库所写)。运行时报如下错:

Ld /Users/magicstudio/Library/Developer/Xcode/DerivedData/ortpserver-dgurqjjjcbdtuuebkljdbalvedfl/Build/Products/Debug/ortpserver normal x86_64
cd /Users/magicstudio/Desktop/multithread_socket_test/ortp_server
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Developer/usr/bin/clang++ -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/magicstudio/Library/Developer/Xcode/DerivedData/ortpserver-dgurqjjjcbdtuuebkljdbalvedfl/Build/Products/Debug -F/Users/magicstudio/Library/Developer/Xcode/DerivedData/ortpserver-dgurqjjjcbdtuuebkljdbalvedfl/Build/Products/Debug -filelist /Users/magicstudio/Library/Developer/Xcode/DerivedData/ortpserver-dgurqjjjcbdtuuebkljdbalvedfl/Build/Intermediates/ortpserver.build/Debug/ortpserver.build/Objects-normal/x86_64/ortpserver.LinkFileList -mmacosx-version-min=10.7 -lortp -o /Users/magicstudio/Library/Developer/Xcode/DerivedData/ortpserver-dgurqjjjcbdtuuebkljdbalvedfl/Build/Products/Debug/ortpserver

Undefined symbols for architecture x86_64:
"RegisterClientInfo(void*)", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

其中,RegisterClientInfo函数在main函数中是这样的。

pthread_create(&pt_handle_precon, NULL, RegisterClientInfo, (void *)NULL);

意思是,开一个线程处理预连接之类的工作。 RegisterClientInfo的实现是在另外的handlePreconnect.h和handlePreconnect.cpp中定义和实现的。暂且只报这一处错。

好像是说库没链接上?但是,我觉得我的ortp库已经链接上了,因为如果我把动态库去掉,会报更多类似的错误。而且报错的
RegisterClientInfo与ortp库没什么关系,RegisterClientInfo里面没有用到ortp库中的函数。
我现在疑惑,报错的原因是什么?大家能不能定位下错误的原因?是RegisterClientInfo的实现有错?请教各位前辈指导一下,折腾了好长时间了!不知道我有没有描述清楚我的问题。
...全文
7766 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengfoo 2011-11-17
  • 打赏
  • 举报
回复
还是不知道怎么弄,但是换了种方式,问题解决了。感悟:有时,一条路走不通,换条路,也许能到达同样的目的地。还是谢谢这位哥们。
pengfoo 2011-11-16
  • 打赏
  • 举报
回复
RegisterClientInfo(void*)是在另外的handlePreconnect.h和handlePreconnect.cpp中定义和实现的。handlePreconnect.h和handlePreconnect.cpp是放在其他头文件一块的。xcode好像可以跳转到handlePreconnect.h,但是跳转不到handlePreconnect.cpp。基本上确定就是这条语句的问题,因为我发现将这条语句注释掉以后运行就能通过了!
[Quote=引用 1 楼 whoami1978 的回复:]

只是RegisterClientInfo(void*)这个函数没有定义
[/Quote]
whoami1978 2011-11-16
  • 打赏
  • 举报
回复
只是RegisterClientInfo(void*)这个函数没有定义

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧