チェックアウト:
http://www.kegel.com/crosstool/
GCC でのクロスコンパイルに関する権威あるサイトです。
その通りです。適切な mips ツールチェーン が必要です アプリケーションをクロスコンパイルするには、Buildroot がそれを実行できます。ただし、buildroot の menuconfig を微調整する必要がある場合があります options.file
の出力に応じて 、オプションが変更される場合があります。私のシステムでは、バイナリ アプリは次のように通知します:
ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1 (SYSV)
Buildroot の menuconfig で有効にしたオプションは次のとおりです:
Target Architecture (mips) --->
Target Architecture Variant (mips 32r2) --->
Target ABI (o32) --->
Target options --->
Build options --->
(/opt/cross-mips-buildroot) Toolchain and header file location?
Toolchain --->
Toolchain type (Buildroot toolchain) --->
Kernel Headers (Linux 2.6.34.x kernel headers) --->
uClibc C library Version (uClibc 0.9.31.x) --->
[*] Build/install a shared libgcc?
[*] Enable compiler tls support
[*] Build gdb debugger for the Target
[*] Build gdb server for the Target
[*] Build gdb for the Host
GDB debugger Version (gdb 6.8) --->
[*] Enable large file (files > 2 GB) support?
[*] Enable WCHAR support
[*] Use software floating point by default
[*] Enable stack protection support
[*] Build/install c++ compiler and libstdc++?
[*] Include target utils in cross toolchain
Package Selection for the target --->
[*] BusyBox
[*] Run BusyBox's own full installation
Libraries --->
Networking --->
[*] libcurl
Text and terminal handling --->
[*] icu
-*- ncurses
Target filesystem options --->
Bootloaders --->
Kernel --->
ツールチェーン自体は /opt/cross-mips-buildroot にインストールされます .コンパイラとその他のツールは /opt/cross-mips-buildroot/usr/bin/ にあります。
シンプルな hello world をコンパイルしてみてください アプリケーションを作成して、mips システム内で実行できるかどうかを確認してください。
注: この構成では、C++ コンパイラはビルドされません。必要な場合は grep LIBSTDCPP .config
できます 有効になっているかどうかを確認し、好きなものに変更します。次に make menuconfig