首先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.bat,在该文件输入:
adb shell mkdir /data/data/test (这是在android上./data/data上创建了一个test文件夹)
adb shellc:/Users/Administrator/Desktop/test/test /data/data/test (这是将桌面上的test二进制可执行文件拷贝到android的 ./data/data/test文件下)
adb shell chmod 777 ./data/data/test/test (这是对test改权限)
adb shell ./data/data/test/test (运行android上的test可执行文件)
adb shell rm -r ./data/data/test (这是删除包含test可执行文件的test文件夹)
pause
start
上面是test.bat的全部内容。弄好以后,双击test.bat执行里面的全部内容了。简单方便
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。