首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现裸causes库导致缺少*.so文件

实现裸causes库导致缺少*.so文件
EN

Stack Overflow用户
提问于 2020-03-13 11:02:01
回答 1查看 237关注 0票数 2

我想使用光嘴在我的安卓项目中实现NDK。

我在这里中发现了最新的“裸骨”演示项目。和自述一样,我从另一个回购中创建了一些本机库,并将其放在“分发”文件夹中。项目正在编译,安装,工作正常。与Android本机sip实现相比,这个库非常棒,使用它,忘记它的卢布permission.USE_SIP

现在,我想将裸own导入到我的项目中,但是没有Java/Kotlin文件,计划构建自己的。所以我的脚步:

  1. externalNativeBuild条目添加到build.gradle
  2. cppdistribution文件夹复制到结构中的适当位置
  3. 使缓存失效并重新启动

有个例外:

生成命令失败。 使用参数{--构建C:\Android\sdk\cmake\3.6.4111459\bin\cmake.exe - C:\Android\projects\MyApplication\app.cxx\cmake\debug\armeabi-v7a目标裸with }执行进程C:\Android\projects\MyApplication\app.cxx\cmake\debug\armeabi-v7a时出错 1/2构建C对象CMakeFiles/巴耗西./巴-西.c.o 2/2链接C共享库C:\Android\projects\MyApplication\app\build\intermediates\cmake\debug\obj\armeabi-v7a\libbaresip.so 失败: cmd.exe /C“.”

接下来,一些重复的行如下:

src/video.c.c:331:错误:未定义的对“atof”的引用 src/main/main.c:944: error:未定义的对“信号”的引用 src/main/main.c:775: error:未定义的对'__FD_ISSET_chk‘的引用 src/main/main.c:690: error:未定义的对'__FD_SET_chk‘的引用 C:/Android/projects/MyApplication/app/src/main/cpp/../../../../distribution/openssl/lib/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error:未定义的“西格菲集”引用

并以

clang: error:链接器命令失败,退出代码1(使用-v查看调用) 忍者:构建停止:子命令失败。

app/src/main/cpp/../../../../distribution/文件路径,如CMakeLists中声明的那样

代码语言:javascript
复制
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../../../../distribution)

对我来说,它看起来像是编译器不可见的文件,但是当我添加/删除一些/任何../错误更改时,会清楚地提示错误的路径。此外,示例项目中还有相同的路径和层次结构。

我试过删除baresip.c文件,但是它的崩溃只是记录了OnLoad调用.

代码语言:javascript
复制
#include <string.h>
#include <pthread.h>
#include <jni.h>
#include <android/log.h>
#include <stdlib.h>
#include <re.h>
#include <baresip.h>

#define LOGD(...) \
    if (log_level_get() < LEVEL_INFO) ((void)__android_log_print(ANDROID_LOG_DEBUG, "Baresip Lib", __VA_ARGS__))


JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) {
    LOGD("at JNI_OnLoad\n");
    return JNI_VERSION_1_6;
}

崩溃仍然发生,但当我注释掉if (log_level_get() < LEVEL_INFO)调用时,我的项目正在构建并安装得很好.log_level_get()来自baresip.h,它是#included,libbaresip.a文件(每个abi),那么为什么libbaresip.so缺少,为什么没有生成?样例项目中存在哪些行,使其能够进行构建和工作?

(是的,我的本地人很虚弱,因为冠状病毒失去了同事的支持.)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-17 09:52:47

结果是有点隐蔽,但没什么难的.对于这个库,目标/编译SDK版本至少应该是21,我有19,这就是为什么ndk没有正确编译.

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

https://stackoverflow.com/questions/60669280

复制
相关文章

相似问题

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