重新编译Obj-C项目时丢失了库

时间:2009-12-31 23:47:37

标签: xcode macos cocoa-bindings libraries

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

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将使用sin()等链接到正确的新项目库。如何修复在早期Xcode中启动的项目以使用正确的库?我看到关于在FFTW中链接的帖子,但sin()并不是那么不寻常,是吗?

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

谢谢, 加里

1 个答案:

答案 0 :(得分:0)

旧项目可能会尝试显式链接到10.5上不存在的C标准库或运行时的旧副本。请发布链接器调用行,而不仅仅是错误结果;这应该给我们一些线索。