私はgcc
、DSM 5.1を搭載したSynology DS214(事実上恐ろしく時代遅れのLinux 3.2.xであるSynology OS)で「機能する」4.6、つまり、ボックスでアプリケーションをコンパイルできるようにしようとしています。クロスコンパイルされたgccと
env CC=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-gcc \
LD=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ld \
RANLIB=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ranlib \
AR=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ar \
CFLAGS=" -I/usr/local/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/include -mhard-float -mfpu=vfpv3-d16" \
LDFLAGS=" -L/usr/local/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/lib" \
auto-apt run ./configure --host=arm-marvell-linux --target=arm-marvell-linux \
--prefix=$USER/syno-prefix --disable-shared --enable-obsolete
make
make install
SynologyツールチェーンのUbuntu 14.10 AMD64上とのための推奨パラメータarmadaxp
CPUとcrosstools-ng
(プロジェクトサイト)ツールチェーンでeglibc
2.18、gcc
4.6.4、Linuxの3.2.40
とarchitecture-level
S armv7-a
とarmadaxp
(後者は、動作しないエラー「不明アーチ」)とCPUのチューニングについてcortex-a9
そしてCFLAGS
-mhard-float -mfpu=vfpv3-d16"
、何時間も検索した後、必要なアーキテクチャパラメータに関する唯一のヒントが、armv7lを使用してMyCloudデバイスでtransmissonをコンパイルする方法のガイドだったためです。
クロスコンパイルさgcc
れたツールチェーンとツールチェーンの両方がエラーを引き起こす
/usr/local/bin/ld: unrecognised emulation mode: armelf_linux_eabi
Supported emulations: armelf_linux armelf armelfb armelfb_linux
collect2: ld returned 1 exit status
(in config.log
)binutils
2.24やtrafficserver
5.1.0 などのコンパイル時(LDFLAGS=" -marmelf_linux"
configure causeの前に追加cc1: error: unrecognized command line option '-marmelf_linux'
)。エラーは系統的であるようです。示されたデバイスの一般的および特別なツールチェーンパラメータのハードウェア固有のパラメータを理解するには、どのように始めるのですか?
gcc
実行すべきターゲットに関するいくつかの情報:
# cat /proc/cpuinfo
Processor : Marvell PJ4Bv7 Processor rev 2 (v7l)
processor : 0
BogoMIPS : 1064.96
processor : 1
BogoMIPS : 1064.96
Features : swp half thumb fastmult vfp edsp vfpv3 tls
CPU implementer : 0x56
CPU architecture: 7
CPU variant : 0x2
CPU part : 0x584
CPU revision : 2
Hardware : Marvell Armada XP Development Board
Revision : 0000
Serial : 0000000000000000
私はARMと浮動小数点ユニット(主にWikipedia)について読むことから始めようとしましたが、どのパラメータが必要かを推測するためには、スターターにとって多くの時間がかかります。
EDIT 1:私はちょうどそれを設定するのが良いだろうと考え出しToolchain type
にオプションをCanadian
ではなくCross
、その後私はまだcrosstools-ng
必要としmachine
、設定するオプション(エラーで失敗するInvalid configuration `': machine `' not recognized
CPUとアーキテクチャの詳細について不足している知識の私の問題に戻って私をもたらします) -そしてもちろん、「マシン」が実際に何を指しているのかを理解する方法はありません...
crosstool-ng
は、クロスおよびカナダのツールチェーンとコンパイラの両方を構築するツールです。明確化のためのリンクを追加しました
-build
設定で適切に指定する必要があります。airs.com/ian/configure/configure_6.html。エラーメッセージ/usr/local/bin/ld
は、ビルドがホストのツールの代わりにビルドのツールを使用していることを示しています(つまり/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ld
)