首先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
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
原文链接:/ubuntu/352431.html