如何使用cmake设置OpenCV以启用动态和静态构建?

我已经使用SHARED_LIBS在Mac上构建并make install编辑了opencv。 我希望能够为每个项目选择是否有共享库。

当我使用-DBUILD_SHARED_LIBS=OFF编译其他OpenCV构建时,如何在项目的CMakeLists中引用它并选择所需的构建类型?

我在~/opencv中拥有带有共享库的源,并且我已经在~/opencv/build中紧随其后编译了make install

当我创建另一个目录~/opencv/static_build时,我如何适应CMakeLists才能创建静态构建应用程序?到目前为止,我已经使用过:

    find_package( OpenCV REQUIRED )

    include_directories(${OpenCV_INCLUDE_DIRS})
    target_link_libraries(test ${OpenCV_LIBS})

但是,如果我没记错的话,这些行都取决于在我的初始make install期间已添加到cmake的变量。

zhangzhang00 回答:如何使用cmake设置OpenCV以启用动态和静态构建?

通过为每个内部版本使用cmake标志-D CMAKE_INSTALL_PREFIX配置一个不同的安装位置,然后make install会将它们安装到各自的位置来进行工作。

为了区分特定的版本并允许cmake在其路径中找不到库,必须在项目的CMakeLists.txt中添加以下行:

set(OpenCV_DIR /path/to/build/lib/cmake)

之前:

find_package( OpenCV REQUIRED )

本文链接:https://www.f2er.com/3145570.html

大家都在问