CMake学习总结 一

#CMake学习总结 一
#============================单个目录,单个源文件========================================#

假如说一个工程只有一个main.cc文件,为其编写CMakeLists.txt文件,且保存在与main.cc源文件相同的目录,则txt文件中内容如下:

#CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)

#项目信息
projet (Demo1)

#指定生成目标文件
add_executable(Demo main.cc)

#======================================================================================#

#===============================单个目录,多个源文件======================================#

假如说一个工程有main.cc、MathFunctions.cc、MathFunctions.h等文件,为其编写CMakeLists.txt文件,且保存在与main.cc等源文件相同的目录,则txt文件中内容如下:

#CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)

#项目信息
projet (Demo2)

#查找当前目录下所有源文件,并将名称保存到指定变量
aux_source_dirextory(. DIR_SRCS)

#指定生成目标文件
add_executable(Demo ${DIR_SRCS})

#=====================================================================================#

#===============================多个目录,多个源文件=====================================#

假如说一个工程有main.cc、MathFunctions.cc、MathFunctions.h等文件且MathFunctions.cc和MathFunctions.h在子目录math中,为其编写CMakeLists.txt文件,则根目录下的txt文件内容如下:

# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project (Demo3)
# 查找当前目录下的所有源文件并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)
# 添加 math 子目录
add_subdirectory(math)
# 指定生成目标 
add_executable(Demo main.cc)
# 添加链接库
target_link_libraries(Demo MathFunctions)

#***********************************************************************#

子目录math下的文件编译为静态库调用,txt文件为:
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(. DIR_LIB_SRCS)
# 生成链接库
add_library (MathFunctions ${DIR_LIB_SRCS})

#====================================================================================#

#***********************************************************************#

语法解析:
  

 cmake_minimum_required:指定运行此配置文件所需的CMake的最低版本
    project:参数值是Demo1,表示项目的名称是Demo1
    add_executable:将名为main.cc的源文件编译成一个名称为Demo的可执行文件
    aux_source_dirextory(<dir> <variable>):查找指定目录下的所有源文件,然后将结构存进指定变量名DIR_SRCS
    add_subdirectory(path):指明本项目包含一个子目录,在执行根目录时子目录下的txt文件也会被执行
    target_link_libraries():可执行文件需要连接一个指定的链接库
    add_library():将源文件编译为静态链接库

#***********************************************************************#

编译项目:
    1、进入源文件所在的目录
    2、执行cmake .
    3、获得Makefile
    4、执行make命令,获得目标文件,此处为Demo
    5、执行可执行目标文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值