关于CMake ----- 一个简单的例子

本文提供了一个CMake的简单示例,展示了如何通过CMakeLists.txt文件来构建一个包含库和可执行文件的项目。CMake用于管理项目的编译过程,add_library指令用于创建库,add_executable用于生成可执行文件,而target_link_libraries则负责将库链接到可执行文件。此外,还介绍了如何启用测试和添加测试用例。
摘要由CSDN通过智能技术生成

关于CMake ----- 一个简单的例子

样例的目录结构为:
在这里插入图片描述

对于这个程序,我们有一个带有头文件与源文件的库文件( MyLibExample ),以及一个带有源文件的应用程序( MyExample ),以下是cmakelists

cmake_minimum_required(VERSION 3.1...3.21)

#这是您的项目报表。你应该总是列出语言;
#在这里列出版本很好,因为它设置了很多有用的变量
project(
  ModernCMakeExample
  VERSION 1.0
  LANGUAGES CXX)

#如果您设置了任何CMAKE_Variables,它可以放在这里。
#(但通常不这样做,可能除了C++标准)。
#查找包裹请点击此处。
#您通常应该将其拆分到文件夹中,但这是一个简单的示例

#这是一个默认的库,将匹配*变量设置。
#其他常见选项包括静态、共享和模块。
#在此处包含头文件有助于IDE,但不是必需的。
#输出 libname与目标名称匹配,并具有您系统上的常见扩展名
add_library(MyLibExample simple_lib.cpp simple_lib.hpp)

#将每个目标与其他目标链接或添加选项等。
#添加我们可以运行的内容-输出名称与目标名称匹配
add_executable(MyExample simple_example.cpp)

#确保使用此命令链接您的目标。它还可以链接库甚至标志,因此链接不存在的目标不会产生配置时错误。
target_link_libraries(MyExample PRIVATE MyLibExample)

## [main]

#此部分是为了让《现代CMake》一书能够验证此示例构建。对于您的代码,
#你可能也想要测试#
enable_testing()
add_test(NAME MyExample COMMAND MyExample)

1.add_library

示例:add_library(MyLibExample simple_lib.cpp simple_lib.hpp)

MyLibExample:静态库的名字

simple_lib.cpp simple_lib.hpp:依赖的cpp和h文件

2.add_executable

示例:add_executable(MyExample simple_example.cpp)

MyExample :编译出来的目标名

作用:

基于特定的源文件,创建可执行文件,名为或者.exe。

输出路径:

关于编译的产物,默认情况下,输出路径和源文件的结构相匹配

示例解释:

编译simple_example.cpp,编出来的可执行文件叫MyExample.

3.target_link_libraries

示例:target_link_libraries(MyExample PRIVATE MyLibExample)

target_link_libraries(
<PRIVATE|PUBLIC|INTERFACE> …
[<PRIVATE|PUBLIC|INTERFACE> …]…)

作用:

为target连接库的头文件路径(被link库生成CMakeLists.txt中定义的头文件路径)和对应定义的函数库路径

示例解释:

将函数库MyLibExample链接到MyExample上;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值