Loading

随笔分类 -  CMake基础教程

CMake基础教程
摘要:介绍 使用CTest,你可以生成make test目标来运行自动化单元测试。这个例子展示了如何找到Boost单元测试框架,创建测试并运行它们。 本教程中的文件如下: $ tree . ├── CMakeLists.txt ├── Reverse.h ├── Reverse.cpp ├── Palin 阅读全文
posted @ 2021-07-28 18:52 橘崽崽啊 阅读(564) 评论(0) 推荐(0) 编辑
摘要:介绍 此示例说明如何调用Clang Static Analyzer以使用scan-build工具执行静态分析。 此示例中包含的文件包括: $ tree . ├── CMakeLists.txt ├── subproject1 │ ├── CMakeLists.txt │ └── main1.cpp 阅读全文
posted @ 2021-07-28 18:50 橘崽崽啊 阅读(615) 评论(0) 推荐(0) 编辑
摘要:介绍 此示例显示如何使用deb格式生成Linux安装程序。 本教程中的文件如下: $ tree . ├── cmake-examples.conf ├── CMakeLists.txt ├── include │ └── Hello.h └── src ├── Hello.cpp └── main. 阅读全文
posted @ 2021-07-28 12:36 橘崽崽啊 阅读(796) 评论(0) 推荐(0) 编辑
摘要:介绍 这个例子展示了如何使用Protobuf生成源文件。Protocol Buffers是Google提供的一种数据序列化格式。用户提供带有数据描述的.proto文件。然后使用Protobuf编译器,可以将该原始文件翻译成包括C++在内的多种语言的源代码。 本教程中的文件如下: $ tree . ├ 阅读全文
posted @ 2021-07-28 11:33 橘崽崽啊 阅读(2046) 评论(0) 推荐(1) 编辑
摘要:介绍 在调用cmake期间,可以创建使用CMakeLists.txt和cmake缓存中的变量的文件。在cmake生成期间,文件被复制到新位置,并替换所有cmake变量。 本教程中的文件如下: $ tree . ├── CMakeLists.txt ├── main.cpp ├── path.h.in 阅读全文
posted @ 2021-07-28 11:32 橘崽崽啊 阅读(675) 评论(0) 推荐(0) 编辑
摘要:介绍 此示例说明如何设置包含子项目的CMake项目。顶层CMakeLists.txt调用子目录中的CMakeLists.txt以创建以下内容: sublibrary1 - 静态库 sublibrary2 - 头文件库 subbinary - 可执行文件 此示例中包含的文件包括: $ tree . ├ 阅读全文
posted @ 2021-07-28 11:31 橘崽崽啊 阅读(3477) 评论(0) 推荐(2) 编辑
摘要:介绍 自从C11和C14发布以来,一个常见的用例是调用编译器来使用这些标准。随着CMake的发展,它添加了一些功能来使这一点变得更容易,而CMake的新版本已经改变了实现这一点的方式。下面的示例显示了设置C++标准的三种不同方法,以及可以使用哪些版本的CMake。 这些例子包括: [common-m 阅读全文
posted @ 2021-07-28 11:30 橘崽崽啊 阅读(3622) 评论(1) 推荐(1) 编辑
摘要:介绍 如前所述,CMake是一个元(meta)构建系统,可用于为许多其他构建工具创建构建文件。这个例子展示了如何让CMake使用ninja构建工具。 本教程中的文件如下: $ tree . ├── CMakeLists.txt ├── main.cpp [CMakeLists.txt] - 包含要运 阅读全文
posted @ 2021-07-28 11:29 橘崽崽啊 阅读(9622) 评论(0) 推荐(2) 编辑
摘要:介绍 正如前面在第8节中提到的,较新版本的CMake允许你使用导入的别名目标链接第三方库。 本教程中的文件如下: $ tree . ├── CMakeLists.txt ├── main.cpp [CMakeLists.txt] - 包含要运行的CMake命令 cmake_minimum_requi 阅读全文
posted @ 2021-07-28 11:29 橘崽崽啊 阅读(270) 评论(0) 推荐(0) 编辑
摘要:介绍 几乎所有重要的项目都需要包含第三方库、头文件或程序。CMake支持使用find_package()函数查找这些工具的路径。这将从CMAKE_MODULE_PATH中的文件夹列表中搜索格式为FindXXX.cmake的CMake模块。在Linux上,默认搜索路径将包含/usr/share/cma 阅读全文
posted @ 2021-07-28 11:28 橘崽崽啊 阅读(1183) 评论(1) 推荐(0) 编辑
摘要:引言 当使用CMake构建时,可以设置C和C++编译器。此示例与hello-cmake示例相同,只是它显示了将编译器从默认的GCC更改为clang的最基本方法。 本教程中的文件如下: $ tree . ├── CMakeLists.txt ├── main.cpp [CMakeLists.txt] 阅读全文
posted @ 2021-07-28 11:28 橘崽崽啊 阅读(6138) 评论(0) 推荐(0) 编辑
摘要:引言 CMake支持以多种不同方式设置编译标志: 使用target_compile_definitions()函数 使用CMAKE_C_FLAGS和CMAKE_CXX_FLAGS变量。 本教程中的文件如下: $ tree . ├── CMakeLists.txt ├── main.cpp [CMak 阅读全文
posted @ 2021-07-28 11:27 橘崽崽啊 阅读(2961) 评论(0) 推荐(0) 编辑
摘要:第6节 生成类型 介绍 CMake有许多内置的构建配置,可用于编译你的项目。它们指定优化级别以及调试信息是否包含在二进制文件中。 提供的级别包括: Release - 将标志-O3 -DNDEBUG添加到编译器 Debug - 添加标志-g MinSizeRel - 添加标志-Os -DNDEBUG 阅读全文
posted @ 2021-07-28 11:27 橘崽崽啊 阅读(457) 评论(0) 推荐(0) 编辑
摘要:介绍 此示例说明如何生成make install目标以在系统上安装文件和二进制文件。这基于前面的共享库示例。 本教程中的文件如下: $ tree . ├── cmake-examples.conf ├── CMakeLists.txt ├── include │ └── installing │ └ 阅读全文
posted @ 2021-07-28 10:39 橘崽崽啊 阅读(786) 评论(0) 推荐(0) 编辑
摘要:介绍 继续展示一个hello world示例,它将首先创建并链接一个共享库。 这里还显示了如何创建别名目标 本教程中的文件如下: $ tree . ├── CMakeLists.txt ├── include │ └── shared │ └── Hello.h └── src ├── Hello. 阅读全文
posted @ 2021-07-28 10:38 橘崽崽啊 阅读(711) 评论(0) 推荐(0) 编辑
摘要:介绍 继续展示一个hello world示例,它首先创建并链接一个静态库。这是一个简化示例,这里的库和二进制文件在同一个文件夹中。通常,这些将会被放到子项目中,这些内容将会在以后描述。 本教程中的文件如下: $ tree . ├── CMakeLists.txt ├── include │ └── 阅读全文
posted @ 2021-07-28 10:37 橘崽崽啊 阅读(1053) 评论(0) 推荐(0) 编辑
摘要:介绍 展示一个hello world示例,它使用不同的文件夹来存储源文件和头文件。 本教程中的文件包括: B-hello-headers$ tree . ├── CMakeLists.txt ├── include │ └── Hello.h └── src ├── Hello.cpp └── ma 阅读全文
posted @ 2021-07-28 10:35 橘崽崽啊 阅读(1371) 评论(0) 推荐(1) 编辑
摘要:介绍 本节展示一个非常基本的hello world的例子。 本节中的文件如下: A-hello-cmake$ tree . ├── CMakeLists.txt ├── main.cpp CMakeLists.txt - 包含你希望运行的 CMake 命令 # Set the minimum ver 阅读全文
posted @ 2021-07-28 10:34 橘崽崽啊 阅读(1404) 评论(0) 推荐(1) 编辑