Cmake 实践
Cmake 实践 Cmake Practice --Cjacker 前言: cmake 已经开发了 5,6 年的时间,如果没有 KDE4,也许不会有人或者 Linux 发行版 本重视 cmake,因为除了 Kitware 似乎没有人使用它。通过 KDE4 的选型和开发,cmake 逐渐进入了人们的视线,在实际的使用过程中,cmake 的优势也逐渐的被大家所认识,至 少 KDE 的开发者们给予了 的开发者们给予了 cmake 极高的评价,同时庞大的 KDE 项目使用 cmake 来作为构 建工具也证明了 cmake 的可用性和大项目管理能力。 所以,cmake 应该感谢 KDE,也正因为如此,cmake 的开发者投入了 KDE 从 autotools 到 cmake 的迁移过程中,并相当快速和顺利的完成了迁移,现在整个 KDE4 开 发版本全部使用 cmake 构建。 这也是促使我们学习 这也是促使我们学习 cmake 的原因,首先 cmake 被接受并成功应用,其次,cmake 的优势在实际使用中不断的体现出来。 我们为什么不来认识一下这款优秀的工程构建工具呢? 在 2006 年 KDE 大会,听 cmake 开发者当面介绍了 cmake 之后,我就开始关注 cmake,并将 cmake 纳入了 Everest 发行版,作为系统默认组件。最近 QT-4.3 也正式进0 码力 | 47 页 | 264.27 KB | 1 年前3CMake Configuration for Demo Project
cmake_minimum_required(VERSION 3.8) # Provide path for scripts list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake") project(demo) include(UseCompilerCache) useCompilerCache() set(CMAKE_VERBOSE_MAKEFILE erage-warrnings-spam- output # Build this if you start getting messages like: # profiling: ..../cmake-build-debug/..../2019_11_18_fuzzing_gilded_rose.dir/GildedRoseApprovalTe sts.cc.gcda: # cannot merge corrupt arc tag (0x01000000) add_custom_target(delete_coverage_gcda_files COMMAND find ${CMAKE_BINARY_DIR} -name '*.gcda' -print -delete COMMENT "Deleting *.gcda files." )0 码力 | 1 页 | 1.23 KB | 5 月前3694SVGFites CMake Configuration
set(EXE_NAME 04SVGFiles) set(CMAKE_CXX_STANDARD 17) add_executable(${EXE_NAME} main.cpp svg_test.cpp SVGReporter.cpp SVGReporter.h ) target_link_libraries(${EXE_NAME}0 码力 | 1 页 | 436.00 B | 5 月前3CMake Configuration for Asio Basic Library and Tests
0 码力 | 1 页 | 71.00 B | 5 月前3C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南
现代 CMake 进阶指南 by 彭于斌( @archibate ) 往期录播: https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码: https://github.com/parallel101/course 为什么要学习现代 CMake ? • 现代 CMake 指的是 CMake 3.x 。 • 古代 CMake 指的是 CMake CMake 2.x 。 • 通过互联网和学校课程,许多人认识的 CMake 都是古代 CMake 。 • 现代 CMake 和古代 CMake 相比,使用 更方便,功能更强大。 为什么要学习现代 CMake ? 现代 CMake : 古代 CMake : 第 0 章:命令行小技巧 传统的 CMake 软件构建 / 安装方式 • mkdir build • cd build build • cmake .. • make -j4 • sudo make install • cd .. • 需要先创建 build 目录 • 切换到 build 目录 • 在 build 目录运行 cmake < 源码目录 > 生成 Makefile • 执行本地的构建系统 make 真正开始构建( 4 进程并 行) • 让本地的构建系统执行安装步骤 • 回到源码目录 现代0 码力 | 166 页 | 6.54 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起
学 C++ 从 CMake 学起 by 彭于斌( @archibate ) 高性能并行编程与优化 - 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++ ,后半段主要介绍并行编程与优化。 1.课程安排与开发环境搭建: cmake 与 git 入门 2.现代 C++ 入门:常用 STL 容器, RAII 内存管理 3.现代 C++ 进阶:模板元编程与函数式编程 4.编译器如何自动优化:从汇编角度看 位时代过去了) 至少 2 核 4 线程(并行课…) 英伟达家显卡( GPU 专题) 软件要求: Visual Studio 2019 ( Windows 用户) GCC 9 及以上( Linux 用户) CMake 3.12 及以上(跨平台作业) Git 2.x (作业上传到 GitHub ) CUDA Toolkit 10.0 以上( GPU 专题) 关于作者 • 我是 Taichi 编译器的贡献者之一( 构建系统的构建系统( CMake ) • 为了解决 make 的以上问题,跨平台的 CMake 应运而生! • make 在 Unix 类系统上是通用的,但在 Windows 则不然。 • 只需要写一份 CMakeLists.txt ,他就能够在调用时生成当前系统所支持的构建系统。 • 需要准确地指明每个项目之间的依赖关系,有头文件时特别头疼。 • CMake 可以自动检测源文件和头文件之间的依赖关系,导出到0 码力 | 32 页 | 11.40 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南
现代 CMake 模块化项目管理指南 彭于斌( @archibate ) 课件 & 源码: https://github.com/parallel101/course 往期录播: https://space.bilibili.com/263032155 找不到头文 件怎么办呀 CMake Cookbook 小彭老师建议 : ~~-·~·~-·~ -~·-·~·- 第一章:文件 / / 目录组织规范 基于 CMake 的 C/C++ 项目,如何优雅地、模块化地组织大量源文件 ? 推荐的目录组织方式 • 目录组织格式: • 项目名 /include/ 项目名 / 模块名 .h • 项目名 /src/ 模块名 .cpp • CMakeLists.txt 中写: • target_include_directories( 项目名 PUBLIC include) • 源码文件中写: myvar 不会自动更新,还是旧的那几个文件,可能出现 undefined symbol ,需要重新运行 cmake -B build 才能更新。 • 加了,则每次 cmake --build 时自动检测目录是否更新,如果目录有新文件了, CMake 会自动帮你重新运行 cmake -B build 更新 myvar 变量。 六、头文件和源文件的一一对应关系 • 通常每个头文件都有一个对应的源文件,两个文件名字应当相同0 码力 | 56 页 | 6.87 MB | 1 年前3Conan 1.56 Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . 341 17.2 How to launch conan install from cmake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 17.3 How to create and reuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 17.6 Using Visual Studio 2017 - CMake integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 17.7 Working with Intel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 17.13 How to reuse cmake install for package() method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 17.14 How0 码力 | 963 页 | 7.67 MB | 1 年前3Conan 1.55 Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . 341 17.2 How to launch conan install from cmake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 17.3 How to create and reuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 17.6 Using Visual Studio 2017 - CMake integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 17.7 Working with Intel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 17.13 How to reuse cmake install for package() method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 17.14 How0 码力 | 963 页 | 7.67 MB | 1 年前3Conan 1.42 Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . 323 17.2 How to launch conan install from cmake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 17.3 How to create and reuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 17.6 Using Visual Studio 2017 - CMake integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 17.7 Working with Intel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 17.13 How to reuse cmake install for package() method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 17.14 How0 码力 | 841 页 | 7.12 MB | 1 年前3
共 361 条
- 1
- 2
- 3
- 4
- 5
- 6
- 37