加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

CMakeLists.txt

发布时间:2020-12-14 03:46:39 所属栏目:大数据 来源:网络整理
导读:示例(在编写CMakeLists.txt前,创建好src,include,lib,bin,build目录,其中cmake ..在build目录中执行) # 一般都会先声明cmake的版本CMAKE_MINIMUM_REQUIRED(VERSION 2.8)PROJECT(hello_world)# Release 和 DebugIF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYP

示例(在编写CMakeLists.txt前,创建好src,include,lib,bin,build目录,其中cmake ..在build目录中执行)

# 一般都会先声明cmake的版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(hello_world)

# Release 和 Debug
IF(NOT CMAKE_BUILD_TYPE)
    SET(CMAKE_BUILD_TYPE Release)

ENDIF()

# SET()用于赋值,类似于 int a = 100
# SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

# AUX_SOURCE_DIRECTORY也是用于赋值,只不过是特定于目录的
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src SRC_DIR)

# 设置头文件路径
INCLUDE_DIRECTORIES(
    ${PROJECT_SOURCE_DIR}/include
)

# 指明编译的文件,创建可执行文件
ADD_EXECUTABLE(main ${SRC_DIR})

# 在MakeFile文件中生成install伪目标指令
INSTALL(TARGETS main DESTINATION ${PROJECT_SOURCE_DIR}/bin)
INSTALL(FILES ${SRC_DIR} DESTINATION ${PROJECT_SOURCE_DIR}/share)

# 指明编译的文件,创建库,ADD_LIBRARY(libname SHARED lib_source_files)

# 添加库的查找目录
LINK_DIRECTORIES(/usr/local/lib)

# 连接库文件
TARGET_LINK_LIBRARIES(main lib_name)

# find_package命令,让cmake自己找库
FIND_PACKAGE(OpenCV 3 REQUIRED)

# 使用C++的版本
ADD_DEFINATION(-std=c++)

# 指明编译器
SET(CMAKE_C_COMPILER g++)
cmake等帮助
cmake --help-command-list 查看命令
cmake --help-variable-list 查看内置变量

OpenCV的配置

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(demo)

SET(CMAKE_BUILD_TYPE Release)

SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

# 放cmake自己找,加载模块成功之后就会新增加一些变量,OpenCV_LIBS,OpenCV_INCLUDE_DIRS,OpenCV_LIBRARY_DIRS
FIND_PACKAGE(OpenCV 3.4.1 REQUIRED)

INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
LINK_DIRECTORIES(${OpenCV_LIBRARY_DIRS})

AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src SRC_DIR)
ADD_EXECUTABLE(main ${SRC_DIR})
# OpenCV比较特殊,下载了V3的,里面会有V2和V3多个版本在一个目录下,通过OpenCV_LIBS明确是哪些库,接着直接连接,所以我们也不需要上面的LINK_DIRECTORIES
TARGET_LINK_LIBRARIES(main ${OpenCV_LIBS})

INSTALL(TARGETS main DESTINATION ${PROJECT_SOURCE_DIR}/bin)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读