首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自建android中包含C++共享库。启动ndk-build时出错

自建android中包含C++共享库。启动ndk-build时出错
EN

Stack Overflow用户
提问于 2013-06-20 23:06:26
回答 1查看 1.4K关注 0票数 1

我尝试在自建的安卓发行版中包含简单的C++共享库。它是用g++编译的,没有任何错误和警告。

目前,我需要将这个.so库包含到自建的安卓中。

我将我的源码复制到'$(Android Source)/ndk/ source /android/libmd5/jni‘中,并创建了包含以下内容的Android.mk文件:

代码语言:javascript
复制
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_CFLAGS := 

LOCAL_MODULE     := libmd5
LOCAL_LDLIBS     := -L$(SYSROOT)/usr/lib
LOCAL_SRC_FILES  := md5.h md5.cc

include $(BUILD_SHARED_LIBRARY) 

然后,我在~/.bashrc的末尾添加了下一行

代码语言:javascript
复制
    export PATH=$PATH:$HOME/AndroidSources/ndk:$HOME/bin/android-sdk-linux/tools

NDK路径和SDK-tools路径分别存在。

当我启动ndk-build时,我得到了下一件事:

代码语言:javascript
复制
andrey@andrey-desktop:~/AndroidSources/ndk/sources/android/libmd5$ ndk-build
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module md5    
Android NDK:   md5.h md5.cc    
make: /home/andrey/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
make: /home/andrey/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
SharedLibrary  : libmd5.so
make: /home/andrey/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++: Command not found
make: *** [obj/local/armeabi/libmd5.so] Error 127

当我关注~/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/的时候

我找不到预建的目录。其中只包含两个文件: config.mk和setup.mk

然而,当我从severally downloaded ndk-r8e启动ndk-build时,我得到了一个非常不同的输出:

代码语言:javascript
复制
$ ndk-build
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module md5    
Android NDK:   md5.h   
Compile++ thumb  : md5 <= md5.cc
StaticLibrary  : libstdc++.a
SharedLibrary  : libmd5.so
Install        : libmd5.so => libs/armeabi/libmd5.so

警告是理解- .h文件不能在.mk文件中。然而,我在libs/armeabi/中得到了最需要的库(如上所述)

我用ubuntu12.10做了所有的事情,并尝试使用android source的ndk。

我哪里做错了?如何在自建android中包含共享库?我希望我已经提供了足够详细的信息。如果没有,请询问。

EN

回答 1

Stack Overflow用户

发布于 2013-06-21 09:11:54

您不能在LOCAL_SRC_FILES中包含头文件,它只用于源文件

LOCAL_SRC_FILES := md5.h md5.cc

应该是

LOCAL_SRC_FILES := md5.cc

在实际的源文件中添加指向头文件(import语句)的链接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17217239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档