CMake:将不同的OpenCV库链接到同一项目的不同可执行文件

CMake: Link different OpenCV libs to different executables of same project

本文关键字:可执行文件 项目 链接 OpenCV CMake      更新时间:2023-10-16

我有一个使用OpenCV的项目,其项目文件是通过cmake生成的。现在,在CMake中添加opencv-libs通常是这样工作的:

find_package(OpenCV REQUIRED core highgui gpu)
add_executable(SomeExecutable someSource.cpp)
target_link_libraries(SomeExecutable ${OpenCV_LIBS})

它将把libs核心、highgui和gpu链接到这个可执行文件。现在,如果我有一个包含多个可执行文件的项目,是否可以将不同的OpenCV库添加到不同的可执行文件中?(例如,因为我不希望其他应用程序加载不必要的库)。

您不应该将目标与所有找到的包链接起来。代替书写:

target_link_libraries(SomeExecutable ${OpenCV_LIBS})

你可能想写:

target_link_libraries(SomeExecutable cxcore highgui)

有关OpenCV库的名称,请检查cmake路径中的FindOpenCV.cmake文件。

相关文章: