鉴于
文件/usr/lib/gstreamer-0.10/libgstffmpeg.so
存在
在 CMakeLists.txt 中进行更改
方法一 find_library()
find_library(GST_FFMPEG NAMES gstffmpeg PATHS /usr/lib/gstreamer-0.10/)
...
target_link_libraries(MyLibraryOrMyExecutable ${GST_FFMPEG})
当我make
使用上述配置(方法 1)运行时,出现以下错误
/bin/ld:警告:libvpx.so.1,/usr/lib/i386-linux-gnu/libavcodec.so.53 需要,未找到(尝试使用 -rpath 或 -rpath-link)
/bin/ld:警告:libschroedinger-1.0.so.0,/usr/lib/i386-linux-gnu/libavcodec.so.53 需要,未找到(尝试使用 -rpath 或 -rpath-link)
/bin/ld:警告:libgsm .so.1,/usr/lib/i386-linux-gnu/libavcodec.so.53 需要,未找到(尝试使用 -rpath 或 -rpath-link)
看起来添加的库取决于更多未链接的库!我可以在 /usr/lib 中看到以上 3 个 .so 文件。因此,方法 1 的一种可能解决方案是添加另外三个find_library()
功能。正确的 ?
可能不是 -这个问题探讨了上述可能解决方案中发现的问题
- Q1。有没有其他方法可以节省查找依赖库并链接它们的工作?一种使用它自动链接所有依赖库的方法?
方法二 link_directories()
链接目录(/usr/lib/gstreamer-0.10/)目标链接库
(MyLibraryOrMyExecutable gstffmpeg)
当我make
使用上述配置(方法 2)运行时,出现以下错误
bin/ld: 找不到 -lgstffmpeg
- Q2。如何解决上述方法2的问题?
- Q3。哪种方法1或2更好?
PS 尝试阅读 cmake 的文档并在 SO 上进行搜索,但无法解决我的问题。我尝试了两种方法,但都遇到了问题