Bài đăng tương tự (ít mô tả) là here.Xây dựng trình biên dịch ARM GNU Cross
Tôi đang cố gắng cuộn chuỗi công cụ của riêng mình bằng các bản phát hành gần đây trên Ubuntu và hy vọng có đủ cộng đồng Linux ở đây để tôi có thể nhận được lời khuyên cụ thể về một số vấn đề nhất định.
Với sự giúp đỡ của mọi người, tôi muốn thấy điều này biến thành một tham chiếu hữu ích cuối cùng.
Đầu tiên tắt "Crosstool" mà gần như mọi người đề cập đến là một chút (2006) đã lỗi thời và "Crosstool-NG" dường như hiện đang mang đèn pin bị lỗi trên máy của tôi. Tôi muốn gỡ lỗi quá trình chính nó hơn là một kịch bản (mà nó sẽ có vẻ đòi hỏi tôi phải hiểu quá trình).
Dưới đây là các bước cơ bản của những gì tôi đã làm việc cho đến nay; hiện tại tôi đang cố gắng để biên dịch GCC đầu tiên.
đâu nó thất bại ...
Nó không vì cây thập tự biên soạn thư viện chứa "crti.o" là mất tích:
# ./gcc-4.4.1/configure --target=arm-linux --disable-thread --enable-langauges=c
/bin/bash ../../../gcc-4.4.1/libgcc/../mkinstalldirs .
/usr/src/gnu-4.4.1-build/./gcc/xgcc -B ........
/usr/local/arm-linux/bin/ld: crti.o No such file: No such file or directory
collect2: ld returned 1 exit status
make[2]: *** [libgcc_s.so] Error 1
make[2]: Leaving directory `/usr/src/gnu/gcc-4.4.1-build/arm-linux/libgcc'
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory `/usr/src/gnu/gcc-4.4.1-build'
make: *** [all] Error 2
Build bước
On cài đặt Ubuntu 9.04 mới được cấu hình, đây là các bước tôi đã thực hiện cho đến thời điểm này:
#New configuration of Ubuntu 9.04
sudo updatedb
sudo apt-get install build-essential subversion
# For kernel configuration
sudo apt-get install libncurses5-dev
# For building GCC
sudo apt-get install libgmp3-dev libmpfr-dev
#Get Linux Headers for GCC/GLIBC compilations
# I use a hacked Linux from Artilla,
pushd ~ && svn co http://.../linux m501-linux && cd !$
make ARCH=arm m501_defconfig
make ARCH=arm menuconfig
sudo mkdir /usr/local/arm-linux/include
sudo cp -dR include/asm-arm /usr/local/arm-linux/include/asm
sudo cp -dR include/linux /usr/local/arm-linux/include/linux
cd /usr/local/arm-linux/
sudo ln -s include sys-include
popd
#Get sources:
cd /usr/src/
sudo su root
mkdir gnu
ftp ftp.gnu.org
# get gnu/binutils/binutils-2.19.1.tar.bz2
# get gnu/gcc/gcc-4.4.1/gcc-4.4.1.tar.bz2
# get gnu/glibc/glibc-2.10.1.tar.bz2
# get gnu/gdb/gdb-6.8.tar.bz2
#Build Binutils
bzcat binutils-2.19.1.tar.bz2 | tar -xv
mkdir binutils-2.19.1-build && cd !$
cp ../binutils-2.19.1/gas/config/tc-arm.c ./tc-arm.c
sed -r 's/(as_bad[ \t]*\()(.+\[.+\]\))/\1\"%s\",\2/' < ./tc-arm.c > ../binutils-2.19.1/gas/config/tc-arm.c
rm ./tc-arm.c
../binutils-2.19.1/configure --target=arm-linux
make && make install && cd ..
#Build GCC
bzcat gcc-4.4.1.tar.bz2 | tar -xv
mkdir gcc-4.4.1-build && cd !$
../gcc-4.4.1/configure --target=arm-linux --disable-thread --enable-langauges=c -with-headers=/usr/local/arm-linux/include
make
Chim cánh cụt, chim cánh cụt .. ở khắp mọi nơi! :) –
Xin lỗi, tôi đã đọc sai câu hỏi của bạn, tôi cho rằng bạn biết rằng libc chính xác sẽ xuất hiện trên máy chủ đích .. và bạn vừa biên dịch trên kiến trúc nước ngoài. Vâng, ít nhất, bây giờ bạn có một chuỗi công cụ ARM làm việc :) –