ฉันจะตั้งค่า GCC สำหรับการรวบรวมข้ามสำหรับหน่วยประมวลผล ARM ได้อย่างไร โฮสต์จะอยู่ที่ x86_64 (AMD64 - Ubuntu 12.04) และเป้าหมายจะเป็น ARM (Raspberry Pi และ Pandaboard - จะรวบรวมแยกกันหรือไม่)
ฉันจะตั้งค่า GCC สำหรับการรวบรวมข้ามสำหรับหน่วยประมวลผล ARM ได้อย่างไร โฮสต์จะอยู่ที่ x86_64 (AMD64 - Ubuntu 12.04) และเป้าหมายจะเป็น ARM (Raspberry Pi และ Pandaboard - จะรวบรวมแยกกันหรือไม่)
คำตอบ:
ติดตั้งgcc-arm-linux-gnueabi
และbinutils-arm-linux-gnueabi
แพ็คเกจจากนั้นใช้arm-linux-gnueabi-gcc
แทนgcc
การรวบรวม
คุณต้องระวังเกี่ยวกับรสชาติของ linux และ binutils ที่คุณมีในระบบเป้าหมายของคุณ สิ่งใหม่ล่าสุดคือ hardfloat ในกรณีนี้คุณจะทำ:
sudo apt-get install gcc-arm-linux-gnueabihf
สิ่งนี้นำมาซึ่งสภาพแวดล้อมการคอมไพล์ข้ามรวมทั้ง binutils
openssl/ossl_typ.h
ไม่พบข้อผิดพลาด libssl-dev
แต่ผมติดตั้งแล้ว
apt-get source
หลังจากapt-get build-dep
ปกติคุณสามารถคอมไพล์ด้วยdpkg-buildpackage -b -uc -us -r
มีวิธีสร้าง. deb นี้อย่างง่ายดายสำหรับ ARM โดยไม่ต้องเปลี่ยน makefile หรือไม่?
and then just use arm-linux-gnueabi-gcc instead of gcc for compilation
หรือไม่ เมื่อฉันรวบรวมฉันใช้การโทรmake
AFAIK ชี้ไปที่/usr/lib/gcc
หรือใกล้เคียงกับสิ่งนั้น ฉันจะเรียก arm-linux-gnueabi-gcc โดยตรงได้อย่างไร?
CC=arm-linux-gnueabihf-gcc make ...
ผู้ให้บริการอิมเมจดิสก์ต้องจัดเตรียม cross compiler ที่เข้ากันได้
นี่เป็นวิธีการเดียวที่เชื่อถือได้
สำหรับ RPI โดยเฉพาะคอมไพเลอร์ cross ที่ให้มามีอยู่ที่: https://github.com/raspberrypi/toolsและสามารถใช้งานได้ตามที่อธิบายไว้ที่: https://raspberrypi.stackexchange.com/questions/64273/installing-raspberry- ปี่ข้ามคอมไพเลอร์ / 83215 # 83215
git clone https://github.com/raspberrypi/tools
export PATH="$(pwd)/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin:${PATH}"
printf '#include <stdio.h>\nint main() { puts("hello world"); }\n' > hello_world.c
printf '#include <iostream>\nint main() { std::cout << "hello world" << std::endl; }\n' > hello_world.cpp
arm-linux-gnueabihf-gcc -std=c99 -o hello_world_c hello_world.c
arm-linux-gnueabihf-g++ -std=c++11 -o hello_world_cpp hello_world.cpp
หากคุณเลือกไขว้คอมไพเลอร์ของคุณอย่างไม่ถูกต้องอาจเกิดสิ่งต่อไปนี้:
ทางเลือกที่ฉันชอบคือการสร้างภาพของคุณเองด้วย Buildroot: https://stackoverflow.com/questions/47557262/how-to-download-the-torvalds-linux-kernel-master-recompile-it-and-boot-it- และ wi / 49349237 # 49349237สิ่งนี้สร้างทุกอย่างจากแหล่งที่มาและทำให้แน่ใจว่าทุกอย่างเข้ากันได้