首先ubuntu上有混合编译器
脚本make.sh,其内容如下:(myvir是我的虚拟机的名字)
/home/myvir/my_ndk_toolchain/bin/arm-linux-androideabi-g++ \
-g -o test test.cpp \
-I /home/myvir/my_ndk_toolchain/include/c++/4.9/arm-linux-androidideabi/armv7-a \
-I ./include \
libopencv_calib3d.a libopencv_features2d.a \
-std=c++11 -g -marm -fPIC -mfpu=neon -mfloat-abi=hard -march=armv7-a \
-llog -Wl,--no-warn-mismatch
如果对应的android版本是5.1以上,在Ubuntu上会报错,错误为:
error:only position independent executables are supported
解决方法:-fPIC后面加上 -pie -fPIE;
make.sh和test.cpp写好之后,两者在TEST文件下。在命令窗口写命令进入Test文件,然后输入./make.sh命令,就会生成一个二进制的可执行文件,将该文件从ubuntu上拷贝到电脑上(我放在了桌面上test的文件里,其路径为:c:/Users/Administrator/Desktop/test/test)。
将可执行文件在Android上运行,可在电脑上写个脚本,新建一个TEST.txt,对其重命名将其改为TEST.b