赞
踩
由于Android系统目录结构与Linux的差异,导致在Linux环境下编译的C/C++程序无法直接在Android系统中运行,会有类似如下报错:
/system/bin/sh: xxxx: No such file or directory
这是由于程序无法找到/lib/ld-linux-armhf.so.3造成的,具体路径可以通过:
readelf -l 可执行文件名
来查看其信息
下面介绍通过Cmake工具交叉编译Android下运行的C/C++程序:
1. 安装CMake
2. 安装NDK
3. cmake编译
前两步不具体说明,百度即可
第三步:首先准备src目录,里面有完成的源文件以及cmake所需的CMakeLists.txt文件(CMakeLists.txt的语法规则自行百度)
然后准备build目录,此目录为编译生成目录
在build目录下,执行:
cmake -DCMAKE_TOOLCHAIN_FILE=NDK_DIR/build/cmake/android.toolchain.cmake SRC_DIR/
其中NDK_DIR是Android ndk的绝对路径,SRC_DIR是我们的源码目录src的绝对路径
然后执行make即可编译成功
这里通过-DCMAKE_TOOLCHAIN_FILE来指定交叉编译的cmake文件来达到编译android应用的目的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。