[关闭]
@chenyiliang 2020-03-05T16:41:26.000000Z 字数 3660 阅读 1019

Windows 构建ARM交叉开发环境

ARM嵌入式开发


Step 1: 在Linux下编译glibc,并安装到一个额外的目录下

-v --enable-languages=c,lto,c++ --prefix=/usr/local/distribute/msys-arm-linux-gnueabihf/arm-linux-gnueabihf --with-gcc-major-version-only --enable-shared --enable-linker-build-id --without-included-gettext --enable-threads=posix --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-default-pie --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf-

Step 2: 编译安装完成后,把一些依赖文件复制到新编译的glibc安装目录下

cp -r /usr/include/linux /usr/local/distribute/msys-arm-linux-gnueabihf/arm-linux-gnueabihf/include/
cp -r /usr/include/asm-generic /usr/local/distribute/msys-arm-linux-gnueabihf/arm-linux-gnueabihf/include/
cp -r /usr/arm-linux-gnueabihf/include/asm /usr/local/distribute/msys-arm-linux-gnueabihf/arm-linux-gnueabihf/include/

Step 3: 进入目录

cd /usr/local/distribute/

Step 4: 打包

tar -cpzvf msys-arm-linux-gnueabihf.tar.gz msys-arm-linux-gnueabihf/*

Step 5: 复制到Windows下

cp msys-arm-linux-gnueabihf.tar.gz /mnt/d/MSYS/MSYS32/usr/local/distribute/

Step 6: MSYS2进入Windows目录,进行两次解压, 因为第一次解压有些文件未解压出来,会导致一些链接文件无法生成,所以要进行两次解压。

cd /usr/local/distribute/
tar -zxvf msys-arm-linux-gnueabihf.tar.gz
tar -zxvf msys-arm-linux-gnueabihf.tar.gz

Step 7: 一个标准的C库已经有了,我们要基于这个C库再去构建一个Windows下的交叉编译器。

-v --enable-languages=c,lto,c++ --prefix=/usr/local/distribute/msys-arm-linux-gnueabihf/ --with-gcc-major-version-only --enable-shared --enable-linker-build-id --without-included-gettext --enable-threads=posix --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-default-pie --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=i686-pc-msys --host=i686-pc-msys --target=arm-linux-gnueabihf --program-prefix=arm-linux-eabihf-

Step 8: 因为glibc在Windows下是不能进行编译的,所以Windows下用newlib来代替glibc,

-v --enable-languages=c,lto,c++ --prefix=/usr/arm-linux-eabihf --with-gcc-major-version-only --enable-shared --enable-linker-build-id --without-included-gettext --enable-threads=posix --enable-nls --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-default-pie --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --host=arm-linux-eabihf --target=arm-linux-eabihf --program-prefix=arm-linux-eabihf-

Step 9: 基于newlib重新构建一个Windows下完整的交叉编译器 arm-linux-eabihf-

-v --enable-languages=c,lto,c++ --prefix=/usr/arm-linux-eabihf --with-gcc-major-version-only --enable-shared --enable-linker-build-id --without-included-gettext --enable-threads=posix --enable-nls --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-default-pie --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=i686-pc-msys --host=i686-pc-msys --target=arm-linux-eabihf --program-prefix=arm-linux-eabihf-

cd /usr/local/distribute/msys-arm-linux-gnueabihf/bin/
export PATH=pwd:$PATH;

make -j4 && make install && cd ../gcc/ && make -j4 && make install;

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注