2011-08-11 30 views
13

我有一個CMake項目,我正在使用一個庫,現在我想用該庫的不同版本測試我的代碼。我可以在下面的例子中設置INCLUDE_DIRECTORIES(也可能以後也會鏈接)。但是因爲我只想暫時做這件事,所以我想用ccmake/cmake-gui手動設置這個路徑。如何將Cmake指向庫的特定目錄?

我該怎麼做?

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}) 

回答

21

這應該可以通過在配置構建時設置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)命令選擇你的OpenCV的安裝在/home/me/src/opencv並設置相應OpenCV_LIBSOpenCV_INCLUDE_DIR變量。

或者,您可以使用CMake GUI編輯器編輯現有構建目錄的CMakeCache.txt文件,並在其中添加CMAKE_PREFIX_PATH定義。那麼你必須重新配置你的項目。

+0

它不起作用。 find_package(OpenCV)仍然會把libs + include包含在/ usr/local /中......我使用了上面給出的三行代碼。任何想法我還能嘗試什麼? – Unapiedra

+0

@Unapiedra將CMAKE_PREFIX_PATH設置爲包含OpenCVConfig.cmake文件(可能爲'​​/ home/me/src/opencv/install')的home目錄。 – sakra

+1

謝謝。它實際上是'.../install/share/OpenCV',但是這樣做! – Unapiedra

相關問題