我試圖建立的binutils在Mac OS X上編譯Binutils的交叉編譯在OS X上的優勝美地
生成的MIPS代碼,我發現這個網站(http://www.theairportwiki.com/index.php/Building_a_cross_compile_of_GCC_for_MIPS_on_OS_X)從How to build GCC 4.8.x on Mac OS X host for MIPS target,並遵循指示。
我從brew安裝了gcc-4.8,並安裝了binutils和gcc的源代碼。這是編譯選項設置。
$ export CC=/usr/local/bin/gcc-4.8
$ export CXX=/usr/local/bin/g++-4.8
$ export CPP=/usr/local/bin/cpp-4.8
$ export LD=/usr/local/bin/gcc-4.8
$ export PREFIX=/opt/cross/gcc-mips
$ export CFLAGS=-Wno-error=deprecated-declarations
然後我配置,並使bintuils。
問題是,構建靜態庫後,我有一個錯誤消息,該檔案不是爲x86_64
構建的,然後我有一堆未定義的符號錯誤。使用谷歌搜索來發現我需要從https://github.com/tpoechtrager/osxcross/issues/11設置AR(存檔)變量。我添加了export AR=/usr/local/bin/gcc-ar-4.8
,但我有另一個錯誤消息,因爲gcc-ar-4.8不起作用。
/usr/local/bin/gcc-ar-4.8
/usr/local/bin/gcc-ar-4.8: Cannot find plugin 'liblto_plugin.so'
再次谷歌搜索發現,GCC-AR不與Mac OS X(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56893)工作。
gcc-ar is for use with newer GNU binutils only as that is the only ar which supports plugins.
Apple's ar does not support plugins (though it could be made to; it will be a different plugin interface than the GNU BFD
plugin interface which GCC supports right now).
我剛剛創建了一個啞liblto_plugin.so「文件/usr/local/Cellar/gcc48/4.8.4/libexec/gcc/x86_64-apple-darwin14.3.0/4.8.4
目錄取消錯誤消息,但在這種情況下,它看起來像/usr/ar
被調用,當我使用/usr/bin/gcc-ar-4.8
得到相同的架構和未定義的符號錯誤。
如何解決這些問題?如何在Mac OS X上構建交叉編譯器工具(gcc和binutils)?
[這些](https://www.macports.org/ports.php?by=category&substr=cross)會有嗎?讓Macport爲你建立和維護東西要容易得多... – Droppy
@Droppy:如果可能的話,我儘量不要使用Macports,因爲我在使用brew時遇到過一些問題。 http://superuser.com/questions/181337/is-it-safe-to-install-both-homebrew-and-macports-on-the-same-machine – prosseek
儘量不要通過env設置'CFLAGS',它通常問題的原因(即一些內部'CFLAGS'的東西不會被設置)。你也可以擺脫'CPP'和'LD',這是沒有必要的。你還應該考慮用'./configure --prefix'替換'PREFIX'。 – Thomas