原文地址:https://github.com/jackyxinli/cross-compilelinux
arm-none-eabi-gcc (ARM architecture,no vendor,not target an operating system,complies with the ARM EABI) 用於編譯 ARM 架構的裸機系統(包括 ARM Linux 的 boot、kernel,不適用編譯 Linux 應用 Application),通常適合 ARM七、Cortex-M 和 Cortex-R 內核的芯片使用,因此不支持那些跟操做系統關係密切的函數,好比fork(2),他使用的是 newlib 這個專用於嵌入式系統的C庫。git
arm-none-linux-gnueabi-gcc & arm-linux-gnu-gcc (ARM architecture, no vendor, creates binaries that run on the Linux operating system, and uses the GNU EABI) 主要用於基於ARM架構的Linux系統,可用於編譯 ARM 架構的 u-boot、Linux內核、linux應用等。arm-none-linux-gnueabi基於GCC,使用Glibc庫,通過 Codesourcery 公司優化過推出的編譯器。arm-none-linux-gnueabi-xxx 交叉編譯工具的浮點運算很是優秀。通常ARM九、ARM十一、Cortex-A 內核,帶有 Linux 操做系統的會用到。github
# dnf install arm-none-eabi-gcc # dnf install arm-none-eabi-newlib # dnf install gcc-arm-linux-gnu # dnf install glibc-arm-linux-gnu # cd ~ # vim .bashrc C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/arm-linux-gnu/include export C_INCLUDE_PATH # source .bashrc # cd ~ # curl http://ffmpeg.org/releases/ffmpeg-4.1.4.tar.gz # tar -zxf ffmpeg-4.1.4.tar.gz # cd ffmpeg-4.1.4 # ./configure --prefix=/root/arm/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=arm-linux-gnu- --cc=arm-linux-gnu-gcc --enable-pthreads --disable-doc --disable-debug --disable-x86asm --disable-static --enable-shared
# apt install gcc-arm-none-eabi # apt install arm-linux-gnueabi # apt install arm-linux-gnueabihf # cd ~ # curl http://ffmpeg.org/releases/ffmpeg-4.1.4.tar.gz # tar -zxf ffmpeg-4.1.4.tar.gz # cd ffmpeg-4.1.4 # ./configure --prefix=/root/arm/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=arm-linux-gnueabihf- --cc=arm-linux-gnueabihf-gcc --enable-pthreads --disable-doc --disable-debug --disable-x86asm --disable-static --enable-shared