首先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 <PIE> 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执行里面的全部内容了。简单方便
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。