`
dingran
  • 浏览: 375846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ndk编译so的几个问题

    博客分类:
  • ndk
 
阅读更多

开始用ndk编译so,出了几个问题,先整理一下。希望以后遇到的人能省些力气。

 

1.

dr@drBox:~/workspace/JniTest/jni$ ~/android-ndk-r6/ndk-build 
Compile++ thumb  : Test <= JniTest.cpp
/bin/sh: /home/dr/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++: not found
make: *** [/home/dr/workspace/JniTest/obj/local/armeabi/objs/Test/JniTest.o] Error 127

 这个错误是说找不到arm-linux-androideabi-g++,确实找不到,我从ndk r6中发现根本就没有linux-x86/文件夹,只有darwin-x86  gdbserver这两个文件夹,所以下载了最新的ndk r7b,幸好这里面有linux-x86文件夹,编译成功了。

 

dr@drBox:~/workspace/JniTest/jni$ ~/android-ndk-r7b/ndk-build 
Compile++ thumb  : Test <= JniTest.cpp
StaticLibrary  : libstdc++.a
SharedLibrary  : libTest.so
Install        : libTest.so => libs/armeabi/libTest.so

 

 

2.当只改动Android.mk文件后需要编译,这时mm执行后会报如下提示:

 

============================================
make: Entering directory `/home/dr/android4.0.3'
make: Nothing to be done for `all_modules'.
make: Leaving directory `/home/dr/android4.0.3'

 说明没有文件改动,拒绝编译。

 

那么解决办法可以是去稍微改动一下cpp等文件,加个空格也行。但是还有一种方便的方式就是

 

给cpp文件加时间戳:touch *.cpp

 

这样就可以继续编译了,所有cpp文件的时间都更新为最新了。

 

 

 

 

分享到:
评论

相关推荐

    AS 运用NDK编译及调用

    标题"AS运用NDK编译及调用"涉及的知识点主要包括以下几个方面: 1. **Android Studio集成NDK**:Android Studio作为官方推荐的Android开发环境,已经集成了NDK支持。开发者可以在项目设置中配置NDK路径,使项目能够...

    安卓下利用ndk编译wget项目

    在Android平台上,利用NDK(Native Development Kit)编译wget项目是一个将开源的wget工具移植到Android设备上的过程。NDK允许开发者用C或C++编写原生代码,并将其集成到Android应用中,以实现高性能的计算或者利用...

    soxr Android ndk编译demo

    在Android NDK环境下编译soxr,主要涉及以下几个步骤: 1. **获取源码**:从压缩包中解压`soxr-0.1.3-Source_android`,这是soxr库的源代码,包含了所有必要的头文件和源文件。 2. **设置NDK环境**:确保已经安装...

    android ndk jni so库生成

    生成SO库的过程大致分为以下几个步骤: 1. **设置工程结构**:在Android Studio的`build.gradle`文件中配置NDK支持,添加`externalNativeBuild`部分,指定CMake或NDK-Build的构建脚本。 ```groovy android { ... ...

    android-ndk-r6b下编译的x264源码

    移植x264到Android时,还需要关注以下几个方面: 1. **异常处理和错误报告**:Android与桌面系统在异常处理和错误报告上存在差异,需要确保x264库中的错误处理机制适配Android环境。 2. **内存管理**:Android应用...

    android ndk环境下移植libiconv方法 附源码

    在Android NDK环境下移植`libiconv`,我们需要以下几个步骤: 1. **获取源码**:从给定的`libiconv-1.14.tar.gz`文件中解压出`libiconv`的源代码。这个版本的`libiconv`已经相当稳定,适合在各种平台上使用。 2. *...

    ExoPlay扩展ffmpeg编译so库

    在编译FFmpeg的过程中,开发者需要考虑以下几个关键步骤: 1. **配置FFmpeg**: 首先,需要下载FFmpeg的源代码并根据Android平台的特定需求进行配置。这可能涉及到选择要编译的组件,如解码器、编码器、过滤器等,...

    编译so文件 Unity调用so文件样例

    在Android开发中,有时我们需要利用C或C++的性能优势...这个过程涉及到Android NDK开发、JNI编程以及Unity的插件集成,需要对这几个方面都有一定的了解。通过实践和调试,可以熟练掌握这一技术,提高应用的性能和功能。

    在VC6中开发Android NDK 应用

    描述中提到的“建立一个Android NDK工程”涉及到以下几个步骤: 1. **环境配置**:首先,你需要安装并配置Android SDK,其中包括设置SDK路径、添加必要的环境变量,如`JAVA_HOME`, `ANDROID_SDK_ROOT`, `PATH`等。 2...

    Android MP4v2 编译全类型so文件

    编译过程主要分为以下几个步骤: 1. **获取源码**: 首先,你需要从官方仓库或者提供的压缩包(如"mp4v2-master")中下载MP4v2的源代码。解压后,你会看到项目的目录结构,包含源码文件、构建脚本等。 2. **配置...

    live555jni库+已编译so包

    关于"压缩包子文件的文件名称列表",虽然这里只给出了一个同名的压缩包,但通常这个压缩包会包含以下几个部分: 1. `lib`目录:存放预编译的.so文件,分为armeabi、armeabi-v7a、arm64-v8a、x86、x86_64等不同架构的...

    ffmpeg-4.2.可编译so的源码(修改过)

    FFmpeg 源码编译成 SO 文件的过程涉及以下几个关键步骤: 1. **环境准备**:首先,你需要一个配置了 NDK(Android Native Development Kit)的开发环境。NDK 提供了在主机上交叉编译 Android 应用所需的工具链。 2...

    Android NDK开发动态加载so

    动态加载.so库是NDK开发中的一个重要技术,它使得应用程序在运行时按需加载库文件,而不是在安装时静态链接。这种方式可以减小APK的大小,提高应用程序的启动速度,以及便于更新和管理库文件。 Android系统提供了`...

    android jni ndk so文件的使用

    首先,制作.so文件的过程分为几个步骤: 1. **创建jni目录**:在Android Studio项目中,新建一个jni目录(如果使用较新版本的AS,可能需要创建的是jniLibs目录)。 2. **编写C/C++代码**:在jni目录下,创建头文件...

    Linux命令行下编译Android NDK的示例代码

    这几天琢磨写一个Android的Runtime用来加速HTML5 Canvas,让GameBuilder+CanTK 不但开发速度快,运行速度也能接近原生应用。所以花了点时间研究Android NDK,网上的资料都是讲IDE里的编译方法,这里记录一下命令行下...

    VNDK编译及HIDL1

    在 VNDK 编译系统中,供应商变体可以被分类为 VND-ONLY、VNDK、VNDK-SP 和 FWK-ONLY 等几种类型,每种类型都有其特定的用途和安装路径。例如,供应商变体为 VND-ONLY 时,共享库将安装到 /vendor/lib[64] 中;供应商...

    安卓ndk配置入门

    最后,执行Gradle构建,`ndkBuild`任务会自动调用NDK编译原生代码,并将生成的.so库文件放入`app/src/main/jniLibs`目录下,与应用打包在一起。 总结来说,安卓NDK配置主要包括以下几个步骤: 1. 创建Java类并声明...

    android-ndk-r23-windows.zip

    4. **使用NDK编译原生代码**:通过CMake或ndk-build脚本编译.so库文件,然后在Android应用中引用。 四、原生代码开发与调试 使用NDK开发原生代码,通常涉及以下过程: 1. **编写C/C++代码**:创建源文件夹结构,...

    android-ndk-r7-windows

    在实际开发中,使用NDK有以下几个关键步骤: 1. **配置环境变量**:安装NDK后,需要将NDK的路径添加到系统环境变量,以便命令行工具可以找到。 2. **创建工程结构**:根据NDK的构建规则,创建一个包含jni目录的...

Global site tag (gtag.js) - Google Analytics