2013-01-11 171 views
1

我在運行GCC 4.7.2的Mac OS X 10.8.2工作站上通過MacPorts獲取。我可以用此設置構建64位(x86_64)應用程序。在x86_64(64位)Mountain Lion上構建i386(32位)應用程序

我試圖通過將-arch i386添加到編譯標誌來從源構建一個32位二進制文​​件。我想在10.5和10.6上添加對32位客戶端的支持。

我得到這似乎有關缺少32位庫以下錯誤信息(其中包括):

ld: warning: ignoring file /opt/local/lib/gcc47/libgcc_ext.10.5.dylib, missing required architecture i386 in file /opt/local/lib/gcc47/libgcc_ext.10.5.dylib (1 slices) 
ld: warning: ignoring file /opt/local/lib/gcc47/gcc/x86_64-apple-darwin12/4.7.2/libgcc.a, file was built for archive which is not the architecture being linked (i386): /opt/local/lib/gcc47/gcc/x86_64-apple-darwin12/4.7.2/libgcc.a 

我的問題是:

  • 是否有不同的標誌我應該使用這個,而不是-arch i386

  • 或者,我可以從哪裏獲得(或者如何編譯)我需要安裝的i386庫,以獲得32位支持?

(我可以編譯i386架構庫從網上下載GCC 4.7.2源?是否有一個選項組特定的我要補充到./configure語句來實現這一點?)

  • 一旦這些庫被安裝,我目前的gcc安裝程序如何「知道」這些庫的位置?

  • 有什麼我可以通過Xcode 4.5.2添加?我已經在命令行上執行了這個操作,但我只能在首選項小程序中看到「命令行工具」和iOS模擬器作爲下載選項。

回答

0

重建GCC 4.7.2的MacPorts安裝與+universal選項爲編譯32-(i386)和64位(x64_86)二進制文件提供了支持。

2

刪除GCC的MacPorts安裝並通過XCode安裝「命令行工具」包。完成此操作後,gcc -arch i386將按預期工作。

+0

事實證明,Clang/LLVM的C++支持並不完整,所以如果我嘗試使用這些工具,我的代碼庫就會崩潰。它看起來像Xcode不在。有沒有辦法引導GCC 4.7.2添加'i386'支持? –

相關問題