0

当我重新编译一个旧的 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() 并没有那么不寻常,是吗?

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

谢谢,加里

4

1 回答 1

0

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

于 2010-01-01T05:04:28.863 回答