2009-11-13 60 views
1

我在Mac OS X Snow Leopard上创建了一个使用Qt和Poco的小型桌面应用程序。Snow Leopard上的链接错误

Qt的正常工作,但一旦我开始与波科链接,我得到以下警告:

ld: warning: in /Developer/SDKs/MacOSX10.6.sdk/usr/local/lib/libPocoFoundation.8.dylib, file is not of required architecture 

此外,当我链接针对10.5 SDK:

ld: warning: in /Developer/SDKs/MacOSX10.5.sdk/usr/local/lib/libPocoFoundation.8.dylib, file is not of required architecture 

如何解决任何提示这个?

解决!

这里是我的解决方法(我也张贴在了波苏论坛BTW):

的问题是,当建筑未指定雪豹默认为64位,而旧版本的操作系统默认的到32位。在Poco构建系统中,Darwin配置文件没有指定体系结构,所以它选择32位。我的解决方案是将Darwin_x86_64配置文件复制到Darwin文件中,并将'x86_64'的文本实例替换为'i386'。这迫使32位版本。

一个有点hackish的解决方案,虽然,让我知道,如果它可以在一个更清洁的方式来完成...

回答

1

你从什么地方拉下库? Poco带有所有的来源。重新编译它。

+1

具体来说,重新编译它为所需的体系结构,并用'-arch'编译时选择需要的体系结构。 – 2009-11-13 22:08:29

+1

您可以使用lipo命令检查二进制文件的体系结构。 (lipo -info/path/to/binary) – Dan 2009-11-14 00:52:38

+0

@gf:我将SVN分支从头开始构建。 @丹:谢谢!该体系结构是:x86_64。我可能需要制作一个386版本,我想.. – StackedCrooked 2009-11-14 12:30:26