0

好吧,我正在创建一个 iPhone 应用程序,其中包含一些功能,例如自行车路线和 Photoviewer。

对于这些循环路线,我使用 Cloudmade api,对于 PhotoViewer,我使用 Three20 的 TTPhotoviewcontroller。

这些循环路线图效果很好,但我认为它与我遇到的错误有关。

我将在这里描述2个案例,关于我尝试了什么以及我收到了什么问题。

案例1: 编译出错并收到以下错误:

duplicate symbol _aatan2 in /Users/wesleycoppens/Documents/MooiWest/libs/Proj4/Device/libProj4.a(aasincos.o) and /Users/wesleycoppens/Documents/MooiWest/libs/route-me/Device/libMapView.a(aasincos.o)
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

当我尝试将标志 -all_load 添加到其他链接器标志时,出现此错误。请参阅下面的图片,我的其他链接器标志当前的样子。

见图片链接http://i49.tinypic.com/262o7q1.png

案例 2: 编译正常,应用程序在模拟器中完美运行,但设备接收 SIGABRT。

在这种情况下,我在其他链接器标志中删除了标志 -all_load。现在我没有收到任何编译错误,但是在点击链接到 photoviewer 应用程序的 tablerow 时我收到了 SIGABRT。

我不确定我是否正确链接到 Photoviewer,所以这是我推送另一个 photoview 的部分。

PhotoTest2Controller *photoViewController = [[PhotoTest2Controller alloc] init];
[self.navigationController pushViewController:photoViewController animated:YES];
[photoViewController release];

同样在这里链接器标志的另一个屏幕截图在这种情况下如何定义它们:

见图片链接http://i47.tinypic.com/vhuv0z.png

4

1 回答 1

1

最后我找到了解决方案。除了出现重复错误的库之外,您可以在所有需要的库中使用“-force_load path_to_library/libXXX.a”,而不是使用“-all_load”标签。它对我有用!希望能帮助到你。

于 2010-08-11T10:31:07.590 回答