-
## Cmake 实践
Cmake Practice
--Cjacker
## 前言:
ccmake 已经开发了 5,6 年的时间,如果没有 KDE4,也许不会有人或者 Linux 发行版本重视 cmake,因为除了 Kitware 似乎没有人使用它。通过 KDE4 的选型和开发,ccmake 逐渐进入了人们的视线,在实际的使用过程中,ccmake 的优势也逐渐的被大家所认识,至少 KDE 的开发者们给予了 的开发者们给予了 cmake 极高的评价,同时庞大的 KDE 项目使用 cmake 来作为构建工具也证明了 cmake 的可用性和大项目管理能力。
所以,cmake 应该感谢 KDE,也正因为如此,CMake 的开发者投入了 KDE 从 autotools 到 cmake 的迁移过程中,并相当快速和顺利的完成了迁移,现在整个 KDE4 开发版本全部使用 cmake 构建。
这也是促使我们学习 cmake cmake 的原因,首先 cmake 被接受并成功应用,其次,cmake 的优势在实际使用中不断的体现出来。
我们为什么不来认识一下这款优秀的工程构建工具呢?
在 2006 年 KDE 大会,听 cmake 开发者当面介绍了 cmake 之后,我就开始关注 cmake,并将 cmake 纳入了 Everest 发行版,作为系统默认组件。最近 QT-4.3 也正式进入了 Everest 系统,为
0 码力 |
47 页 |
264.27 KB
| 2 年前 3
-
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()
s set(CMAKE_VERBOSE_MAKEFILE off)
# If building the code with clang gives 'Error: could not load cache'
# 1 turn COLLECT_CODE_COVERAGE to FALSE
# 2 build and run the tests
# 3 turn COLLECT_CODE_COVERAGE coverage-warrnings-spam-output
# Build this if you start getting messages like:
# profiling:
.../cmake-build-debug/.../2019_11_18_fuzzing_gilded_rose.dir/GildedRoseApprovalTests.cc.gcda:
# cannot merge
0 码力 |
1 页 |
1.23 KB
| 1 年前 3
-
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}
shar
0 码力 |
1 页 |
436.00 B
| 1 年前 3
-
0 码力 |
1 页 |
71.00 B
| 1 年前 3
-
## 现代 CMake 进阶指南
by 彭于斌 (@archibate)
往期录播:https://www.bilibili.com/video/BV1fa411r7zp
课程 PPT 和代码:https://github.com/parallel101/course
## 为什么要学习现代 CMake?

12 cmake -B build -DCMAKE_BUILD_TYPE=Release
13 cmake --build build --parallel 4
14 cmake --build build --target install
15
• 现代 CMake 指的是 CMake 3.x。
- 古代 CMake 指的是 CMake 2.x。
- 通过互联网和学校课程,许多人认识的 通过互联网和学校课程,许多人认识的 CMake 都是古代 CMake。
- 现代 CMake 和古代 CMake 相比,使用更方便,功能更强大。
## 为什么要学习现代 CMake?
1 cmake minimum required(VERSION 2.8)
## 古代 CMake :



## 高性能并行编程与优化 - 课程大纲
• 分为前半段和后半段,前半段主要介绍现代 C++,后半段主要介绍并行编程与优化。
1. 课程安排与开发环境搭建:cmake 与 git 入门
2. 现代 C++ 入门:常用 STL 容器,RAII 内存管理
3. 现代 C++ 进阶:模板元编程与函数式编程
4. 编译器如何自动优化:从汇编角度看 C++
5. 2 核 4 线程(并行课...)
英伟达家显卡(GPU 专题)
软件要求:
Visual Studio 2019 ( Windows 用户 )
GCC 9 及以上(Linux 用户)
CMake 3.12 及以上(跨平台作业)
Git 2.x(作业上传到 GitHub)
CUDA Toolkit 10.0 以上(GPU 专题)
## I ❤️ C
## 关于作者
![Image]
0 码力 |
32 页 |
11.40 MB
| 2 年前 3
-
找不到头文件怎么办呀
CMake
# 现代 CMake 模块化项目管理指南
彭于斌 (@archibate)
课件 & 源码:https://github.com/parallel101/course
往期录播:https://space.bilibili.com/263032155
## 第一章:文件 / 目录组织规范
基于 CMake 的 C/C++ 项目,如何优雅地、模块化地组织大量源文件? .jpg)
cmake_minimum_required(VERSION 3.18)
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_extensions 如果不加,在你创建新文件时,myvar 不会自动更新,还是旧的那几个文件,可能出现 undefined symbol,需要重新运行 cmake -B build 才能更新。
- 加了,则每次 cmake --build 时自动检测目录是否更新,如果目录有新文件了,CMake 会自动帮你重新运行 cmake -B build 更新 myvar 变量。
## 六、 头文件和源文件的一一对应关系

project(cppcon LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED 1)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
set(CM DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) "${CMAKE_CURRENT_LIST_DIR}/cmake/modules"
include(cmake/cppCon20Find.cmake)
find_package(Catch2)
include(GNUInstallDir)
if(Catch2_FOUND)
enable_testing()
endif()
include(cmake/Functions
0 码力 |
1 页 |
625.00 B
| 1 年前 3
-
conventions/directory layout (beman.library_name, #include, etc.)
- CMake as build system with several related recommendations
![Image](/uploads/documents/f/c/2/4/fc24895 challenges. We instead suggest recommending a more popular framework, such as GTest, supplemented with CMake functions adding negative compilation testing capabilities.
## I ntroduction
The Beman Project's there is a single testing-related entry which requires tests to be executable with CTest:
[TOPLEVEL.CMAKE] REQUIREMENT: There must be a CMakeLists.txt at the repository's root that builds and tests (via
0 码力 |
53 页 |
7.38 MB
| 1 年前 3
-
open-source code editor
Runs on Windows, macOS, and Linux
C++ IntelliSense, debug & code browsing
CMake, vcpkg and git integrations
SSH/container/WSL remote experiences
and much, much more...
## 10 Years
Shift+Alt+O | | Close Folder | CMake... | |
| Start Live Share Session | Unreal Platform in Visual Studio
Build and debug applications on both Windows and Linux from a single IDE
CMake Debugger in Visual Studio
Remote File Explorer for Linux
Target View Improvements
☐ pioneer (C 0 码力 |
46 页 |
4.07 MB
| 1 年前 3
|