2011-03-31 92 views
10

我希望你能幫助我。如何在CMake Makefile中包含OpenCV庫

我有一個簡單的CMakeLists.txt爲了在Leopard 10.5.8上構建我的項目。 我使用CMake的2.8.1和目前這是代碼:

cmake_minimum_required(VERSION 2.8) 
MESSAGE(STATUS "./src: Going into utils folder") 
ADD_SUBDIRECTORY(utils) 
MESSAGE(STATUS "./src: utils folder processed") 

include_directories(${DIR}/headers) 
link_directories (${DIR}/src/utils) 

ADD_EXECUTABLE(sample sample.cpp) 
TARGET_LINK_LIBRARIES(sample libSample ${EXTERNAL_LIBS}) 
INSTALL(TARGETS sample DESTINATION "./src") 
MESSAGE(STATUS "./src: exiting src folder") 

我需要在我的項目中添加OpenCV的庫。 當我使用Eclipse時,我將包含路徑設置爲/ opt/local/include ,並將庫路徑設置爲:/ opt/local/lib,然後指定庫名稱,如opencv_core,opencv_imgproc,opencv_video。

你能告訴我如何在CMakeLists.txt文件中添加這些信息嗎?

我已閱讀官方cmake FAQ中的一些信息,但我無法解決我的問題。

請幫幫我。

非常感謝。

回答

24

您需要在TARGET_LINK_LIBRARIES命令中添加庫名稱,但您需要添加它們而不使用lib前綴。例如:

include_directories(${DIR}/headers /opt/local/include) 
link_directories (${DIR}/src/utils /opt/local/lib) 

ADD_EXECUTABLE(sample sample.cpp) 
TARGET_LINK_LIBRARIES(sample opencv_core opencv_imgproc opencv_video ${EXTERNAL_LIBS}) 
+0

這是一種約定嗎?忽略lib-前綴?我是linux新手,因此在這方面失去了一些時間。 這是否也適用於其他項目或者這是OpenCV特定的? – ancajic 2016-05-21 13:54:15

+0

是的,這是Unix上的慣例。 – ltc 2016-05-21 20:17:07