android 能调用gcc_Android:交叉编译总结

本文详细介绍了如何在Android环境中使用GCC进行交叉编译,包括基本的编译命令、交叉编译链的默认配置、如何处理STL头文件路径问题、Bionic C与Glibc的区别、使用Makefile编译C++程序以及解决不同Android版本的符号缺失问题。通过实例展示了从创建独立编译链到链接静态库和动态库的全过程。
摘要由CSDN通过智能技术生成

总结一下交叉编译

如何用交叉编译链命令行编译

基本通过下面两句可以完成helloworld编译,参考(本方法已经过时了,请不要使用,要使用独立编译链的方法)https://www.cnblogs.com/bingghost/p/5721423.html

/home/liwenfeng/work/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -I/home/liwenfeng/work/android-ndk-r13b/platforms/android-24/arch-arm/usr/include -c hello.c -o hello.o

/home/liwenfeng/work/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -L/home/liwenfeng/work/android-ndk-r13b/platforms/android-24/arch-arm/usr/lib -nostdlib -fPIE -pie -lc hello.o /home/liwenfeng/work/android-ndk-r13b/platforms/android-24/arch-arm/usr/lib/crtbegin_dynamic.o /home/liwenfeng/work/android-ndk-r13b/platforms/android-24/arch-arm/usr/lib/crtend_android.o -o hello

交叉编译链的默认配置是怎样的?

echo 'main(){}'|arm-linux-androideabi-gcc -E -v -

Using built-in specs.

COLLECT_GCC=arm-linux-androideabi-gcc

Target: arm-linux-androideabi

Configured with: /usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/configure --prefix=/tmp/59719db9ae19ff43aef46bbcb79596b6 --target=arm-linux-androideabi --host=x86_64-linux-gnu --build=x86_64-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-gmp=/buildbot/tmp/build/toolchain/temp-install --with-mpfr=/buildbot/tmp/build/toolchain/temp-install --with-mpc=/buildbot/tmp/build/toolchain/temp-install --with-cloog=/buildbot/tmp/build/toolchain/temp-install --with-isl=/buildbot/tmp/build/toolchain/temp-install --with-ppl=/buildbot/tmp/build/toolchain/temp-install --disable-ppl-version-check --disable-cloog-version-check --disable-isl-version-check --enable-cloog-backend=isl --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --disable-libssp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-libstdc__-v3 --disable-sjlj-exceptions --disable-shared --disable-tls --disable-libitm --with-float=soft --with-fpu=vfp --with-arch=armv5te --enable-target-optspace --enable-bionic-libs --enable-libatomic-ifuncs=no --enable-initfini-array --disable-nls --prefix=/tmp/59719db9ae19ff43aef46bbcb79596b6 --with-sysroot=/tmp/59719db9ae19ff43aef46bbcb79596b6/sysroot --with-binutils-version=2.25 --with-mpfr-version=3.1.1 --with-mpc-version=1.0.1 --with-gmp-version=5.0.5 --with-gcc-version=4.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值