CMakeLists.txt 的编写

入门级编写一——同一目录,单个文件

一个典型的CMakeLists.txt文件信息如下:

# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project(test_cmake)
# 指定生成目标,test即为生成的可执行文件
add_executable(test test_cmake.c)

CMakeLists.txttest_cmake.c放在同一目录下。

建议:
在使用cmake命令前,在CMakeLists.txt所在的目录下先建一个build/的文件夹,进入build/文件夹,然后再bash命令行下输入:$ cmake ..回车,然后输入$ make,在build/文件夹下将有可执行文件test,然后运行$ ./test即可完成任务。

入门级编写二——同一目录,多个文件

CMakeLists.txt文件信息更改如下:

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

# 项目信息
project(test_cmake)

# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS) #增加的部分

# 指定生成目标
add_executable(test ${DIR_SRCS})

入门级编写三——多个目录,多个文件

文件路径:

./Demo3
    |
    +--- main.cc
    |
    +--- math/
          |
          +--- MathFunctions.cc
          |
          +--- MathFunctions.h

对于这种情况,需要分别在项目根目录 Demo3 和 math 目录里各编写一个 CMakeLists.txt 文件。为了方便,我们可以先将 math 目录里的文件编译成静态库再由 main 函数调用.

根目录CMakeLists.txt文件信息更改如下:

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

# 项目信息
project(test_cmake)

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

# 添加 math 子目录
add_subdirectory(math)

# 指定生成目标 
add_executable(test 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_library 将 src 目录中的源文件编译为静态链接库。

高级设置

暂时用不上,就先不研究了。研究了之后再更新

你可能感兴趣的:(CMakeLists.txt 的编写)