如何在库的特定目录中指向cmake?

时间:2011-08-11 16:19:20

标签: cmake

我有一个CMake项目,我正在使用一个库,现在我想用不同版本的库来测试我的代码。我可以在下面的例子中设置INCLUDE_DIRECTORIES(以后可能还会链接)。但是因为我只想暂时这样做,所以我想用ccmake / cmake-gui手动设置这个路径。

我该怎么做?

project(min_example)
cmake_minimum_required(VERSION 2.8)

find_package(OpenCV REQUIRED)
# Without the following line please:
INCLUDE_DIRECTORIES("/home/me/src/opencv/install/include")
add_executable(min_example main.cpp)
target_link_libraries(min_example ${OpenCV_LIBS})

2 个答案:

答案 0 :(得分:25)

这应该可以通过在配置构建时设置CMAKE_PREFIX_PATH变量来实现。在项目目录中生成test_build目录并运行:

mkdir test_build
cd test_build
cmake -DCMAKE_PREFIX_PATH=/home/me/src/opencv/install ..

设置CMAKE_PREFIX_PATH变量会使find_package(OpenCV REQUIRED)命令选择/home/me/src/opencv中的OpenCV安装,并相应地设置OpenCV_LIBSOpenCV_INCLUDE_DIR变量。

或者,您可以使用CMake GUI编辑器编辑现有构建目录的CMakeCache.txt文件,并在其中添加CMAKE_PREFIX_PATH定义。您必须重新配置项目。

答案 1 :(得分:0)

在find_package中使用config将搜索路径限制为OpenCV_DIR。这将使用opencv在构建时生成的cmake配置来设置包含和库的路径

set(OpenCV_DIR "<cusompath>" CACHE PATH '' ${SHOULD_FORCE_CACHE})
find_package(OpenCV REQUIRED CONFIG)
相关问题