HarmonyOS 鸿蒙Next DevEco studio使用本地鸿蒙虚拟机x86调用linux编译的pjsip的so包,运行时报错ld.lld: error: undefined symbol: pj_init

HarmonyOS 鸿蒙Next DevEco studio使用本地鸿蒙虚拟机x86调用linux编译的pjsip的so包,运行时报错ld.lld: error: undefined symbol: pj_init

cke_232.png

cke_512.png

代码里引入的函数都没有报错,可以找到

cke_4370.png

cke_4819.png

但是点击运行时报错

cke_15236.png

请大佬帮忙看一下


更多关于HarmonyOS 鸿蒙Next DevEco studio使用本地鸿蒙虚拟机x86调用linux编译的pjsip的so包,运行时报错ld.lld: error: undefined symbol: pj_init的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

不支持x86,用真机就可以了

更多关于HarmonyOS 鸿蒙Next DevEco studio使用本地鸿蒙虚拟机x86调用linux编译的pjsip的so包,运行时报错ld.lld: error: undefined symbol: pj_init的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我的so包是用ubuntu编译的,这不行吧,

针对您在使用DevEco Studio的本地鸿蒙虚拟机x86环境中调用Linux编译的pjsip的so包时遇到的“ld.lld: error: undefined symbol: pj_init”错误,这通常意味着链接器在so包中找不到pj_init这个符号。这可能是由于以下几个原因:

  1. 符号未导出:确保在pjsip的源代码或编译配置中,pj_init函数是被正确导出到so文件中的。检查编译命令或Makefile文件,确认是否使用了正确的导出选项(如GCC的-fvisibility=default或类似的)。

  2. 版本不匹配:如果pjsip的so包是为不同的架构(如arm而非x86)或不同的ABI(如Android而非鸿蒙的ABI)编译的,那么可能会出现符号不兼容的情况。确保pjsip的so包是为鸿蒙x86架构编译的。

  3. 链接错误:检查DevEco Studio的项目配置,确保pjsip的so包被正确添加到项目的库路径中,并且在链接时被引用。

  4. 依赖缺失:pj_init可能依赖于其他未正确链接的库。确保所有必要的依赖库都已正确安装并链接。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部