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

Una*_*dra 21 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})
Run Code Online (Sandbox Code Playgroud)

sak*_*kra 25

这可以通过CMAKE_PREFIX_PATH在配置构建时设置变量来实现.在您的项目目录中生成一个test_build目录并运行:

mkdir test_build
cd test_build
cmake -DCMAKE_PREFIX_PATH=/home/me/src/opencv/install ..
Run Code Online (Sandbox Code Playgroud)

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

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

  • @AndrewHundt其设置为CMake的列表,即`cmake的-D "CMAKE_PREFIX_PATH =/A/B /;/C/d"` (8认同)