2009-11-13 61 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