由于C库的问题,NDK并不能直接编译Linux C应用程序


只需指定--sysroot即可


例如NDK的路径是/develop/android-ndk-r10d


那么--sysroot=/develop/android-ndk-r10d/platforms/android-17/arch-arm


对于其中的android-17,是针对Android 4.2.2


对于不同的Android版本,此处也要指定对应的Android API Level


在Makefile中,完整的编译参数为


/develop/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/develop/android-ndk-r10d/platforms/android-17/arch-arm -Wall -o test test.c



[ 附录 ]

使用NDK开发ELF版本的可执行程序,使用opencv arm sdk库处理图像:

main源码如下:

#include #include #include #include #include #include #include #include int main(int argc, char **argv){cv::Mat image, gray, bin;while(1){system("screencap -p /sdcard/snapshot.png");image = cv::imread("/sdcard/snapshot.png", CV_LOAD_IMAGE_COLOR);cv::cvtColor(image, gray, CV_BGR2GRAY);cv::adaptiveThreshold(gray, bin, 128, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 3, 5);cv::imwrite("/sdcard/snapshot.jpg", bin);break;}return 0;}

编译指令如下,注意替换路径,NDK_PATH指的是NDK路径,OPENCV_SDK_PATH指的是opencv sdk路径,请到opencv官网下载arm版本sdk包,还有必须说明,编译指令最重要是关于 gnu-libstdc++ STL库的链接问题

{NDK_PATH}\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\bin\arm-linux-androideabi-g++.exe -Wall -pie -fPIE --sysroot={NDK_PATH}\platforms\android-24\arch-arm -I{NDK_PATH}\sources\cxx-stl\gnu-libstdc++\4.9\include -I{NDK_PATH}\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi-v7a\include -I{OPENCV_SDK_PATH}\include -L{NDK_PATH}\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi-v7a -L{OPENCV_SDK_PATH}\lib -o opencv opencv.cpp -lopencv_highgui -lopencv_imgproc -lopencv_core -llibpng -llibtiff -llibjasper -lIlmImf -llibjpeg -lgnustl_static -llog -lz -lm




更多相关文章

  1. :Android(安卓)a2sd各种版本和技术解释
  2. 查看Android的源代码
  3. 编译出错 ninja: build stopped: subcommand failed Android
  4. android 反编译 整理
  5. Android第三方文件选择器aFileChooser使用方法详解
  6. 避免 Android(安卓)Studio 编译 APK 出现 [MissingTranslation]
  7. Android反编译工具简介
  8. 编译libgdx
  9. android 源码下载及编译

随机推荐

  1. Android(安卓)CTS 测试研究
  2. Linux 下编译Android
  3. Android(安卓)Layout机制研究
  4. Android(安卓)studio Error: Please sele
  5. Android(安卓)Framework 之HelloWorld(二)
  6. 使用宝塔面板上线项目
  7. 抖音seo源码,抖音seo优化系统源码技术搭建
  8. 新手使用APICloud可视化开发搭建商城主页
  9. 使用APICloud实现文档下载和预览功能
  10. 如何用ps绘制插画肌理?ps肌理插画教程