【发布时间】:2017-10-27 14:53:43
【问题描述】:
我正在构建 opencv,但一些 so 库包含对其他共享库的依赖项,这些库的名称包含路径元素 ../../lib,这将导致库加载在运行时失败。
我尝试更改构建选项并在线搜索以了解问题是如何发生的,但找不到答案。
这些路径元素是如何包含在这些 .so 文件中的,以及如何排除它们?
例如,下面显示了一个库libopencv_calibd3d.so 依赖于../../lib/libopencv_features2d.so。我希望从命令的输出中删除那些 ../../lib/:
~sample/opencv/test$ objdump -p libopencv_calib3d.so | grep NEEDED
NEEDED ../../lib/libopencv_features2d.so
NEEDED ../../lib/libopencv_flann.so
NEEDED ../../lib/libopencv_highgui.so
NEEDED ../../lib/libopencv_imgproc.so
NEEDED ../../lib/libopencv_core.so
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
【问题讨论】:
标签: c++ opencv shared-libraries