Snow Leopard上的链接错误
问题描述:
我在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的解决方案,虽然,让我知道,如果它可以在一个更清洁的方式来完成...
答
你从什么地方拉下库? Poco带有所有的来源。重新编译它。
具体来说,重新编译它为所需的体系结构,并用'-arch'编译时选择需要的体系结构。 – 2009-11-13 22:08:29
您可以使用lipo命令检查二进制文件的体系结构。 (lipo -info/path/to/binary) – Dan 2009-11-14 00:52:38
@gf:我将SVN分支从头开始构建。 @丹:谢谢!该体系结构是:x86_64。我可能需要制作一个386版本,我想.. – StackedCrooked 2009-11-14 12:30:26