您的位置:首页 > 其它

CMake 入门

2015-06-13 12:48 218 查看

编写 CMakeLists.txt

首先编写 CMakeLists.txt 文件,并保存在与 main.cc 源文件同个目录下:

# 单个源文件
# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project (Demo1)
# 指定生成目标
add_executable(Demo main.cc)

 

CMakeLists.txt 的语法比较简单,由命令、注释和空格组成,其中命令是不区分大小写的。符号

#
后面的内容被认为是注释。命令由命令名称、小括号和参数组成,参数之间使用空格进行间隔。

对于上面的 CMakeLists.txt 文件,依次出现了几个命令:

  1. cmake_minimum_required
    :指定运行此配置文件所需的 CMake 的最低版本;
  2. project
    :参数是
    main
    ,该命令表示项目的名称是 main 。
  3. add_executable
    : 将名为 main.cc 的源文件编译成一个名称为 Demo 的可执行文件。

 

# 同一目录,多个源文件
# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project (Demo2)
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)
# 指定生成目标
add_executable(Demo ${DIR_SRCS})

aux_source_directory: 将当前目录所有源文件的文件名赋值给变量

DIR_SRCS

add_executable: 指示变量 
DIR_SRCS
中的源文件需要编译成一个名称为 Demo 的可执行文件。

 

# 多个目录,多个源文件
# 根目录中的 CMakeLists.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)

# 子目录中的 CMakeLists.txt:
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(. DIR_LIB_SRCS)
# 生成链接库
add_library (MathFunctions ${DIR_LIB_SRCS})

add_subdirectory:
指明本项目包含一个子目录 math, math 目录下的 CMakeLists.txt 文件和源代码也会被处理

target_link_libraries:
指明可执行文件 main 需要连接一个名为 MathFunctions 的链接库

add_library:
将 src 目录中的源文件编译为静态链接库

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: