gcc编译器配置

一.使用交叉编译器编译

1.安装交叉编译工具链

2.导出环境变量

[ubuntu @tmp]$ export PATH=$PATH:/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/aarch64-poky-linux   //导出编译工具链的路径
[ubuntu @tmp]$ export CC="aarch64-poky-linux-gcc -march=armv8-a -mtune=cortex-a57.cortex-a53 --sysroot=/usr/local/oecore-x86_64/sysroots/aarch64-poky-linux" //编译时要指定sysroot
[ubuntu @tmp]$ $CC test.c -o test //编译

注意:Android上面的编译方法不是这样的。

[ubuntu @Yocto]$ . scripts/oesdk_app.sh
[ubuntu @Yocto]$ $CC -v
Using built-in specs.
COLLECT_GCC=aarch64-poky-linux-gcc
COLLECT_LTO_WRAPPER=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/7.2.0/lto-wrapper
Target: aarch64-poky-linux
Configured with: ../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/configure 
--build=x86_64-linux 
--host=x86_64-oesdk-linux 
--target=aarch64-poky-linux 
--prefix=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr 
--exec_prefix=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr 
--bindir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/aarch64-poky-linux 
--sbindir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/aarch64-poky-linux 
--libexecdir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/libexec/aarch64-poky-linux 
--datadir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/share 
--sysconfdir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/etc 
--sharedstatedir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/com 
--localstatedir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/var 
--libdir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/aarch64-poky-linux 
--includedir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/include 
--oldincludedir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/include 
--infodir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/share/info 
--mandir=/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/share/man 
--disable-silent-rules 
--disable-dependency-tracking 
--with-libtool-sysroot=/home/user10/g6s/build/tmp/work/x86_64-nativesdk-oesdk-linux/gcc-cross-canadian-aarch64/7.2.0-r0/recipe-sysroot 
--with-gnu-ld 
--enable-shared 
--enable-languages=c,c++ 
--enable-threads=posix 
--enable-multilib 
--enable-c99 
--enable-long-long 
--enable-symvers=gnu 
--enable-libstdcxx-pch 
--program-prefix=aarch64-poky-linux- 
--without-local-prefix 
--enable-lto 
--enable-libssp 
--enable-libitm 
--disable-bootstrap 
--disable-libmudflap 
--with-system-zlib 
--with-linker-hash-style=gnu 
--enable-linker-build-id 
--with-ppl=no 
--with-cloog=no 
--enable-checking=release 
--enable-cheaders=c_global 
--without-isl 
--with-gxx-include-dir=/not/exist/usr/include/c++/7.2.0 
--with-build-time-tools=/home/user10/g6s/build/tmp/work/x86_64-nativesdk-oesdk-linux/gcc-cross-canadian-aarch64/7.2.0-r0/recipe-sysroot-native/usr/aarch64-poky-linux/bin 
--with-sysroot=/not/exist 
--with-build-sysroot=/home/user10/g6s/build/tmp/work/x86_64-nativesdk-oesdk-linux/gcc-cross-canadian-aarch64/7.2.0-r0/recipe-sysroot 
--without-long-double-128 
--enable-poison-system-directories 
--with-mpfr=/home/user1/g6p/build/tmp/work/x86_64-nativesdk-oesdk-linux/gcc-cross-canadian-aarch64/7.2.0-r0/recipe-sysroot 
--with-mpc=/home/user1/g6p/build/tmp/work/x86_64-nativesdk-oesdk-linux/gcc-cross-canadian-aarch64/7.2.0-r0/recipe-sysroot 
--enable-nls 
--enable-initfini-array 
--enable-__cxa_atexit
Thread model: posix
gcc version 7.2.0 (GCC) 
原文地址:https://www.cnblogs.com/hellokitty2/p/9683166.html