我需要在我的vp8项目中使用c++编码器。我编译了ffmpeg,使libvpx库能够使用
/配置-启用-libvpx
如何将它添加到CmakeLists.txt中。链接时,我得到了链接错误
target_link_libraries(main "/path/to/libav")
发布于 2022-07-14 13:24:22
使用target_link_libraries
target_link_libraries需要一个库文件的完整路径,所以不要调用
target_link_libraries(main PUB"/path/to/lib")你应该这样做
target_link_libraries(main "/path/to/lib/lib.so")使用target_link_directories和target_link_libraries
您可以显式提供目录,链接器将在其中查找库。将此与target_link_libraries相结合,您将得到
target_link_directories(main INTERFACE|PUBLIC|PRIVATE "/path/to/lib")
target_link_libraries(main lib)使用pkg-config
FFmpeg生成pkg-config文件,这是处理依赖关系的一个方便的解决方案。CMake有一个模块,它支持pkg-config:FindPkgConfig。
find_package(PkgConfig)它提供了一个函数pkg_check_modules,用于搜索库的.pc文件。假设您有一个文件lib.pc,您应该调用
pkg_check_modules(LIB lib)现在可以通过使用pkg-config设置的特定变量与库链接:
target_link_libraries(main ${LIB_LIBRARIES})
target_link_directories(main ${LIB_LIBRARY_DIRS})
target_include_directories(main ${LIB_INCLUDE_DIRS})别忘了检查你的图书馆是否真的被发现了:
if(NOT LIB_FOUND)
# error message
endif()https://stackoverflow.com/questions/72980750
复制相似问题