2009-12-31 48 views
0

当我重新编译旧的Obj-C项目(Cocoa应用程序)时,链接程序找不到一些常用的库模块,包括sin()和sysctl()。这个项目一直在Xcode的前一版本中工作。我现在在OSX 10.5中使用Xcode 3.1.2。该错误信息是:重新编译Obj-C项目时丢失的库

Line Location Tool:0: collect2: ld returned 1 exit status 
Line Location Tool:0: symbol(s) not found 
Line Location Tool:0: _AmIBeingDebugged in MeterMileage.o 
Line Location Tool:0: "_sysctl", referenced from: 
Line Location Tool:0: -[AnimatedStar drawRect:] in AnimatedStar.o 
Line Location Tool:0: "_sin", referenced from: 
... 

我目前的Xcode的版本将使用罪(),等我该如何解决这在前面的Xcode中使用正确的开工项目与正确的库链接一个新项目图书馆?我看到了有关FFTW链接的文章,但是sin()并不是那么不寻常,是吗?

我想我可以创建一个新项目,并将我的代码等复制到它,但这似乎有点笨拙。有没有更好的办法?可能会有更多的项目需要更新。

感谢, 加里

+0

您是否清理目标并生成结果目录? – 2009-12-31 23:55:51

+0

是的 - 做了“清理所有目标”,删除了“生成”文件夹 – gary 2010-01-01 00:13:46

回答

0

这可能是因为旧的项目正试图明确针对C标准库或运行不上10.5存在的旧副本链接。请发帖连接器调用一行,不只是错误结果;这应该给我们一些线索。

+0

嗯,我不得不做一点学习......离链接器调用行最近的地方是GCC的BUILD REPCRIPT行。它有一个“-nostdlib”标志。啊,哈!这是问题所在。 有没有办法看到实际的链接器调用?通过仅显示相关的ld标志(放弃gcc的东西),可以简化未来的工作。 谢谢你的帮助。 – gary 2010-01-01 15:10:34