如何在CMake Makefile中包含OpenCV库

问题描述:

我希望你能帮助我。如何在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中的一些信息,但我无法解决我的问题。

请帮帮我。

非常感谢。

您需要在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