这是用来记录CMakeLists.txt编写的示例代码,方便自己后续查阅。
#设置CMAKE最`在这里插入代码片`低版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3)
#设置项目名称
SET(PROJECT_NAME facedetect_test)
#建立项目
PROJECT(${PROJECT_NAME})
#设置debug/release模式编译。
#set(CMAKE_BUILD_TYPE debug)
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release)
ENDIF()
# 设置C++编译版本
set(CMAKE_CXX_FLAGS "-std=c++11")
#设置输出库文件路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#配置opencv
FIND_PACKAGE(OpenCV REQUIRED)#FIND_PACKAGE要放在设置opencv的OpenCVConfig.cmake文件路径前面
set(OpenCV_DIR /media/everfine/data/zp/gpu/demo/lIB/OPENCV_MT_STA/install) # 设置opencv的OpenCVConfig.cmake文件路径
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#配置ncnn
# 分别设置ncnn的链接库和头文件
set(NCNN_LIBS /media/everfine/data/zp/gpu/demo/lIB/NCNN_MT_STA/install/lib/ncnn.lib)
set(NCNN_INCLUDE_DIRS /media/everfine/data/zp/gpu/demo/lIB/NCNN_MT_STA/install/include/ncnn)
INCLUDE_DIRECTORIES(${NCNN_INCLUDE_DIRS})
#打印调试信息
MESSAGE(STATUS "Project: ${PROJECT_NAME}")
MESSAGE(STATUS "OpenCV library status:")
MESSAGE(STATUS "version: ${OpenCV_VERSION}")
MESSAGE(STATUS "libraries: ${OpenCV_LIBS}")
MESSAGE(STATUS "include path: ${OpenCV_INCLUDE_DIRS}")
MESSAGE(STATUS "libraries: ${NCNN_LIBS}")
MESSAGE(STATUS "include path: ${NCNN_INCLUDE_DIRS}")
MESSAGE(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
#获取代码,在项目中,将所有代码都放在src文件夹中
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
MESSAGE(STATUS "Src file: ${DIR_SRCS}")
#获取头文件,在项目中,将所有头文件都放在include文件夹中
include_directories(${PROJECT_SOURCE_DIR}/include)
#编译可执行程序
ADD_EXECUTABLE(${PROJECT_NAME} ${DIR_SRCS})
#添加链接库
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${NCNN_LIBS})