CmakeLists.txt文件的简单编写

CmakeLists.txt的结构

常用的命令

cmake_minimum_required(VERSION 3.20) 

声明要求的cmake的最低版本
终端输入camke -version可以查看camke的版本


project(test)

声明工程的名字
还可以增加版本号,如:project(test version 1.1)


set(CMAKE_CXX_COMPILE "g++")

设置使用g++的编译器;


SET(CMAKE_BUILD_TYPE "release")

设置camke的编译模式,有release和debug两种
PROJECT_SOURCE_DIRCMakeLists.txt的绝对路径


set(CMAKE_CXX_FLAGS "-std=c++11 -march=native -03")

参数CMAKE_CXX_FLAGSset compiler for c++ language
添加c++11的标准支持,*.CPP文件的编译选项
-march=native 指定目标的程序的cpu架构来进行程序优化
native就是相当于自检cpu, -march是gcc的优化项目
后面的 -03 是用来调节编译时的优化程度,最高是 -03 最低是 -00 ,不做优化
-0x这个参数只有在CMake -DCMAKE_BUILD_TYPE=release时有效,因为debug版本的项目生成的可执行文件需要有调试信息并且不需要进行优化,但是release版本的不需要调试信息,但需要优化。


set(use_test ${SOURCES_DIRECTORY}/user_accounts.cpp) 
message(“use_test: ${use_test})

调试手段


LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)

设置链接目录


INCLUDE_DIRECTORY(${PROJECT_SOURCE_DIR}/include)

设置头文件目录


ADD_SUBDIRECTORY(${PROJECT_SOURCE_DIR}/src)

增加子文件夹,进入源代码文件夹继续构建


find_package(OpenCV REQUIRED)

添加依赖,去寻找该库的头文件位置、库文件位置以及库文件名称,并将其设为变量,返回提供给CmakeList.txt其他部分。
CmakeLists.txt中,使用第三方库的步骤

 1. find_package 
      find_package(OpenCV REQUIRED)
 2. include_directories   
 	  include_directories(${OpenCV_INCLUDE_DIRS})
 3. target_link_libraries
 	  target_link_libraries(${OpenCV_LIBRARIES})  

add_executable( 程序名  源代码文件)

生成一个可执行的程序


add_library(库文件名称  STATIC   文件)

一般,库文件的名称通常都是libxxx.so,这里只需要写 xxx 即可


必须要有的语句

project(xxx)                                       

add_subdirectory(子文件夹名称)                         #父目录必须,子目录不必

add_library(库文件名称 STATIC 文件)                    #通常子目录(二选一)
add_executable(可执行文件名称 文件)                     #通常父目录(二选一)

include_directories(路径)                             
link_directories(路径)                               

target_link_libraries(库文件名称/可执行文件名称 链接的库文件名称)   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值