一.使用交叉编译器编译
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./lto-wrapper
Target: aarch64-poky-linux
Configured with: ../../../../../../work-shared/gcc-7.2.-r0/gcc-7.2./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.-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.
--with-build-time-tools=/home/user10/g6s/build/tmp/work/x86_64-nativesdk-oesdk-linux/gcc-cross-canadian-aarch64/7.2.-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.-r0/recipe-sysroot
--without-long-double-
--enable-poison-system-directories
--with-mpfr=/home/user1/g6p/build/tmp/work/x86_64-nativesdk-oesdk-linux/gcc-cross-canadian-aarch64/7.2.-r0/recipe-sysroot
--with-mpc=/home/user1/g6p/build/tmp/work/x86_64-nativesdk-oesdk-linux/gcc-cross-canadian-aarch64/7.2.-r0/recipe-sysroot
--enable-nls
--enable-initfini-array
--enable-__cxa_atexit
Thread model: posix
gcc version 7.2. (GCC)