如何在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})
这是一种约定吗?忽略lib-前缀?我是linux新手,因此在这方面失去了一些时间。 这是否也适用于其他项目或者这是OpenCV特定的? – ancajic 2016-05-21 13:54:15
是的,这是Unix上的惯例。 – ltc 2016-05-21 20:17:07