1,自已生成了一个算法库,内部使用了JSONCPP这个库,放在SRS中加载总提示:
加载失败:dlopen
libTargetDetect.so: undefined symbol: _ZN4Json6Reader5parseEPKcS2_RNS_5ValueEb
用以下工具查看(可以任选一个工具即可)总有未定义:
objdump -tT libTargetDetect.so
D *UND* 0000000000000000 _ZN4Json6Reader5parseEPKcS2_RNS_5ValueEb
nm -D libTargetDetect.so
U _ZN4Json6Reader5parseEPKcS2_RNS_5ValueEb
ldd -r libTargetDetect.so
linux-vdso.so.1 (0x00007ffc7407f000)
libopencv_highgui.so.4.5 => /usr/local/lib/libopencv_highgui.so.4.5 (0x00007f5242abf000)
libopencv_imgcodecs.so.4.5 => /usr/local/lib/libopencv_imgcodecs.so.4.5 (0x00007f52424f1000)
libopencv_imgproc.so.4.5 => /usr/local/lib/libopencv_imgproc.so.4.5 (0x00007f5241c79000)
libopencv_core.so.4.5 => /usr/local/lib/libopencv_core.so.4.5 (0x00007f524163b000)
&

本文档记录了两个与动态链接库相关的技术问题。首先,由于忘记链接jsoncpp库,导致算法库加载时出现未定义符号错误。解决方法是在CMakeList.txt中正确链接jsoncpp库。其次,SRS上通过dlsym加载自定义动态库接口失败,问题在于库文件位置不正确。解决办法是将库文件放置于SRS的trunk目录下。
最低0.47元/天 解锁文章
1847

被折叠的 条评论
为什么被折叠?



