CMake 入门教程

1、CMake教程之 Hello world

1.1编写CMakeLists.txt

	最基本的CMake项目是从单个源代码文件构建的可执行文件。对于这样的简单项目,只需要一个包含三个命令的CMakeLists.txt文件。
	注意:虽然CMake支持大写,小写和混合大小写命令,但小写命令是首选,并将在整个教程中使用。
	任何项目的最重要的CMakeLists.txt必须从使用cmake_minimum_required()命令指定最小CMake版本开始。这将建立策略设置,并确保以下CMake函数与CMake的兼容版本一起运行。
	要启动一个项目,我们使用project()命令来设置项目名称。这个调用对于每个项目都是必需的,应该在cmake_minimum_required()之后不久调用。正如我们稍后将看到的,该命令还可以用于指定其他项目级别的信息,如语言或版本号。
	最后,add_executable()命令告诉CMake使用指定的源代码文件创建一个可执行文件。
//指定最小CMake版本开始
cmake_minimum_required(VERSION 3.10)
//设置项目名称
project(HelloWorld)
//告诉CMake使用指定的源代码文件创建一个可执行文件
add_executable(HelloWorld helloworld.cpp)

1.2执行命令

//以下两个命令的主要工作是保证cmake编译生成的工程在 build_linux 下
mkdir build_linux
cd build_linux
cmake ..
//make是linux下才使用,windows下会生成vs工程
make 

2、CMake教程之 函数详解及使用

2.1 add_executable

//创建一个可执行程序
add_executable(<target> [WIN32] [MACOSX_BUNDLE]
         [EXCLUDE_FROM_ALL]
         source1 [source2 ...])

参数说明:
target:要创建的可执行目标的名称。
[WIN32]:可选参数,在 Windows 平台上生成一个窗口应用程序,隐藏控制台窗口。
[MACOSX_BUNDLE]:可选参数,在 macOS 上生成一个应用程序包(Bundle)。
[EXCLUDE_FROM_ALL]:可选参数,将该目标从默认构建中排除。
source1 [source2 …]:源代码文件的列表,用于构建可执行目标。

2.2 add_library

//创建一个库
add_library(<target> [STATIC | SHARED | MODULE]
        [EXCLUDE_FROM_ALL]
        source1 [source2 ...])

参数说明:
target:要创建的库目标的名称。
[STATIC | SHARED | MODULE]:可选参数,指定库的类型。静态库(STATIC),共享库/动态库(SHARED),或模块库(MODULE)。
[EXCLUDE_FROM_ALL]:可选参数,将该目标从默认构建中排除。
source1 [source2 …]:源代码文件的列表,用于构建库目标。

2.3 target_include_directories

//用于向目标(可执行目标、库目标)添加包含目录。
target_include_directories(<target> [SYSTEM] [BEFORE]
                           <INTERFACE|PUBLIC|PRIVATE> [items1...]
                           [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])

参数说明:
target:要添加包含目录的目标。
[SYSTEM]:可选参数,将目录视为系统级别的目录,对于一些系统头文件的搜索一般使用该选项。
[BEFORE]:可选参数,将目录添加到已存在的包含目录之前。
<INTERFACE | PUBLIC | PRIVATE>:指定目标的属性类型,这决定了包含目录是否会传播给依赖的目标。
[items1…]:包含目录路径的列表。
[<INTERFACE|PUBLIC|PRIVATE> [items2…] …]:可以指定多个属性类型和对应的包含目录。

2.4 target_link_libraries

//命令用于将链接目标(可执行目标、库目标)与其他库目标进行关联,以创建构建的依赖关系
target_link_libraries(<target>
                      <PRIVATE|PUBLIC|INTERFACE> <item>...
                     [<PRIVATE|PUBLIC|INTERFACE> <item>...]...)

参数说明:
target:要链接的目标(例如可执行目标、库目标)。
<PRIVATE | PUBLIC | INTERFACE>:指定链接的属性类型,决定链接的库的可见性和传递性。
item …:要链接的库目标或其他库的名称。

属性类型说明:
PRIVATE:链接库作为私有依赖项添加到目标,不会传递给依赖此目标的其他目标。
PUBLIC:链接库作为公共依赖项添加到目标,传递给依赖此目标的其他目标。
INTERFACE:链接库作为接口依赖项添加到目标,不会链接到目标本身,但会传递给依赖此目标的其他目标。

2.5 target_sources

//用于向指定目标(如可执行目标或库目标)添加源文件
target_sources(<target> [PRIVATE|PUBLIC|INTERFACE] [items1...]
               [<PRIVATE|PUBLIC|INTERFACE> [items2...] ...])

参数说明:
target:要向其添加源文件的目标。
[PRIVATE | PUBLIC | INTERFACE]:可选参数,用于指定源文件的属性类型。默认为 PRIVATE。
[items1…] [items2…]:要添加的源文件列表。

2.6 target_link_options

//用于向目标(如可执行目标或库目标)添加链接选项
target_link_options(<target> [BEFORE]
                    [PRIVATE|PUBLIC|INTERFACE] <options>...)

参数说明:
target:要添加链接选项的目标。
[BEFORE]:可选参数,指定将链接选项添加到当前已存在的选项之前。
[PRIVATE | PUBLIC | INTERFACE]:可选参数,用于指定链接选项的属性类型。默认为 PRIVATE。
options…:要添加的链接选项列表。

2.7 target_compile_options

//用于向目标(如可执行目标或库目标)添加编译选项
target_compile_options(<target> [PRIVATE|PUBLIC|INTERFACE] <options>...)

参数说明:

target:要添加编译选项的目标。
[ PRIVATE | PUBLIC | INTERFACE ] :可选参数,用于指定编译选项的属性类型。默认为 PRIVATE。
options…:要添加的编译选项列表。

3、CMake教程之结尾案例

通过上述的CMake 常用的入门函数 详解,屏幕前 聪慧的你 已经能写出一个非常棒的案例。为了避免你遇到一些不必要的坑,我这边写了一个案例,希望能帮到你。
案例中有两个例子,一个是生成Log库,一个是生成CLog可执行程序, CLog中会调用Log。
地址:https://download.csdn.net/download/weixin_43842397/88792069

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CMake是一种跨平台的开源构建工具,它可以自动生成与操作系统和编译器兼容的构建脚本,使项目的构建更加简单和灵活。本文将针对Linux系统进行CMake入门教程。 首先,你需要在Linux系统上安装CMake。你可以通过包管理工具,如apt或yum,在终端中运行相应的安装命令来安装CMake。 安装完成后,你可以进入你的项目目录,创建一个CMakeLists.txt文件来配置你的项目。CMakeLists.txt是CMake的配置文件,它定义了项目的目标、依赖关系和编译选项等。 打开一个文本编辑器,在CMakeLists.txt中添加以下内容: ``` cmake_minimum_required(VERSION 3.10) project(MyProject) set(CMAKE_CXX_STANDARD 11) add_executable(MyExecutable main.cpp) ``` 在这个配置中,我们首先指定了CMake的最低版本要求,并命名了我们的项目。接下来,我们设置了C++的标准为C++11。然后,我们使用add_executable命令添加了一个可执行文件目标,并指定其源文件为main.cpp。 保存并关闭CMakeLists.txt文件。 然后,你需要在终端中进入你的项目目录,并创建一个build目录用于构建过程。 ``` mkdir build cd build ``` 在build目录中,你可以运行cmake命令来配置你的项目。 ``` cmake .. ``` 这将根据CMakeLists.txt文件生成构建脚本。如果你在CMakeLists.txt中没有错误,你将看到一些输出信息,并且build目录中将生成构建脚本。 最后,你可以运行make命令来编译你的项目。 ``` make ``` 这将根据生成的构建脚本编译你的项目。如果你的项目没有编译错误,你将在build目录中得到一个可执行文件。 至此,你已经成功入门CMake在Linux系统上的使用。你可以根据自己的需要修改CMakeLists.txt来添加更多的目标、库和编译选项等。 总结起来,CMake是一个功能强大且易于使用的构建工具,它可以帮助你更好地管理和构建你的项目。希望这个教程对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值