无法将 openal soft 与 necessitas 关联

Posted

技术标签:

【中文标题】无法将 openal soft 与 necessitas 关联【英文标题】:Failed to link openal soft with necessitas 【发布时间】:2012-03-21 15:08:05 【问题描述】:

我正在尝试为 android 重建我的 Qt 应用程序,所以我选择了 necessitas。但是,当我尝试与 openal soft for android(静态构建)链接时,出现错误:

/media/Files/QtCode/AndroidPlayer/libs/armeabi/libopenal.a(android.o): In function `JNI_OnLoad':
/media/Files/openal-android/android/jni/../../Alc/backends/android.c:51: multiple definition of `JNI_OnLoad'
qtmain_android.o:qtmain_android.cpp:(.text.JNI_OnLoad+0x0): first defined here
collect2: ld returned 1 exit status

我没有学过android或java编程,所以不知道如何链接没有.a文件的共享库(开放软共享库只提供.so文件)。

【问题讨论】:

【参考方案1】:

这意味着 JNI_OnLoad 函数在多个地方定义。一次是来自 OpenAL Soft 的 android.c 文件,一次是来自 Qt 的 qtmain_android.cpp。

JNI_OnLoad 是 Android 在加载时为每个共享库调用的特殊函数。显然你不能拥有其中两个。

我建议您将 OpenAL 和 Qt 放入单独的共享库中。这样,Android 将正确调用这两个 JNI_OnLoad 函数。

【讨论】:

以上是关于无法将 openal soft 与 necessitas 关联的主要内容,如果未能解决你的问题,请参考以下文章

无法将节点 fs 模块与 k6 一起使用

cent6.5 设置open_files max_user_processes

cent6.5 设置open_files max_user_processes

Kingsway Soft Data Migration - 带有状态的权利实体错误

NMS和Soft NMS

docker 容器挂载主机目录,访问出现 cannot open directory /mnt/home/webroot/: Permission denied 的解决办法