# cmake-example **Repository Path**: cryingn/cmake-example ## Basic Information - **Project Name**: cmake-example - **Description**: 一些cmake的使用案例教程, 正在翻译 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-12-20 - **Last Updated**: 2024-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README = CMake示例 :toc: :toc放置!: toc::[] # 引言 https://cmake.org/[CMake]是一个跨平台的开源元构建系统用于构建, 测试和打包软件. 它可以支持多种构建环境, 包括苹果的xcode和微软的Visual Studio. 这个存储库包括我挑选的一些现代CMake配置示例, 当探索它在各种项目中的用途时. 这些例子以类似教程的形式列出. 第一个例子是非常基本的, 在前面的例子的基础会慢慢出现更加复杂的用例. 这些例子已经在Ubuntu 16.04与arch 5.15.90上进行了测试, 但应该可以在任何支持CMake v3.5+的Linux系统下运行. 此版本适用的版本CMake >= 3.5。 * 有关使用CMake 2.x版本的示例,详见link:https://github.com/ttroy50/cmake-examples/tree/v2-style-includes[v2版本]. * 有关使用CMake 3.0版本的示例,详见link:https://github.com/ttroy50/cmake-examples/tree/v3.0-minimum[最低v3.0版本]. image:https://docs.travis-ci.com/api/images/logo.png["构建状态", link="https://travis-ci.org/ttroy50/cmake-examples"] # 需求 大多数示例的基本环境有: * CMake >= v3.5+ * cpp编译器 (一般为gcc) * make ## 在arch上安装 [source, bash] ---- $sudo pacman -S gcc,cmake ---- 某些特定示例可能需要其他工具, 包括: * http://www.boost.org/[boost] $ sudo pacman -S boost * https://github.com/google/protobuf[protobuf] $ sudo pacman -S protobuf * http://cppcheck.sourceforge.net/[cppcheck] $ sudo pacman -S cppcheck * http://clang.llvm.org/[clang] $ sudo pacman -S clang * https://ninja-build.org/[ninja] $ sudo pacman -S ninja * link:https://conan.io[conan] $ sudo pacman -S conan ## 在Ubuntu上安装 在Ubuntu上安装上述软件的最简单方法如下 [source, bash] ---- $sudo apt-get install build-essential $sudo apt-get install cmake ---- 某些特定示例可能需要其他工具, 包括: * http://www.boost.org/[boost] $ sudo apt-get install libboost all dev * https://github.com/google/protobuf[protobuf] $ sudo apt-get-install libprotobuf-dev $ sudo apt-get-install protobuf-compiler * http://cppcheck.sourceforge.net/[cppcheck] $ sudo apt-get-install cppcheck * http://clang.llvm.org/[clang] $ sudo apt-get-install clang-3.6 * https://ninja-build.org/[ninja] $ sudo apt-get install ninja-build * link:https://conan.io[conan] $ sudo apt-get install python3 python3pip $ sudo pip3 install conan ## Docker 生成了具有所有需求和各种版本CMake的Docker容器,以帮助简化示例测试。这些可从docker hub存储库链接获得: https://hub.docker.com/r/matrim/cmake-examples/[矩阵/cmake-examples]. 要构建完整的cmake示例测试用例集,您可以运行: [source, bash] ---- docker run -it matrim/cmake-examples:3.5.1 cd ~ git clone https://github.com/ttroy50/cmake-examples.git code cd code ./test.sh ---- 有关构建和运行docker容器链接的更多详细信息,请访问: link:here[dockerfiles]。 # 其他链接 网上有许多CMake的教程和示例。下面的列表包括链接, 我发现其中一些对我的CMake之旅很有帮助. * https://web.archive.org/web/20160314094326/https://www.kdab.com/~stephen/moderncmake.pdf[CMake的PPT] * https://rix0r.nl/blog/2015/08/13/cmake-guide/[CMake博客] * https://cmake.org/cmake-tutorial/[官方CMake教程] * https://gitlab.kitware.com/cmake/community/wikis/home[官方CMake Wiki] * https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/Useful-Variables[CMake可用变量] * http://derekmolloy.ie/hello-world-introductions-to-cmake/[Derek Molloy - CMake简介] * http://techminded.net/blog/modular-c-projects-with-cmake.html[模块化C++ 项目] * https://web.archive.org/web/20190320121339/http://voices.canonical.com/jussi.pakkanen/2013/03/26/a-list-of-common-cmake-antipatterns/[常见的CMake Anti模式] * http://baptiste-wicht.com/posts/2014/04/install-use-clang-static-analyzer-cmake.html[使用带有CMake的clang静态分析仪] * https://cmake.org/pipermail/cmake/2011-april/043709.html[使用CDash进行静态分析] - 包括有关使用CppCheck和CMake的一些信息 * https://samthursfield.wordpress.com/2015/10/20/some-cmake-tips/[CMake的一些小技巧] * https://www.johnlamp.net/cmake-tutorial.html[John Lamp - CMake教程] * link:https://docs.conan.io[Conan文档]