Cmake官方教程解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Cmake官方教程解析

原文链接CMake 教程

一、介绍

CMake 教程提供了一个分步指南,其涵盖了 CMake 构建过程中常见问题解决方案。查看示例项目中的各种主题如何协同工作会非常有帮助。示例的教程文档和源代码可以在 CMake 源代码树的目录Help/guide/tutorial中找到 。每个步骤都有自己的子目录,其中包含可用作起点的代码。教程示例是渐进式的,因此每个步骤都为上一步提供了完整的解决方案。

二、步骤1

大部分项目都是从源码构建可执行文件。下面我们将以一个简单项目做为教程的起点,其需要一个只包含三行内容的CMakeLists.txt文件。

2.1 tutorial.cxx

// A simple program that computes the square root of a number
#include <cmath>
#include <cstdlib>
#include <iostream>
#include <string>
 
int main(int argc, char* argv[])
{
  if (argc < 2) {
    std::cout << "Usage: " << argv[0] << " number" << std::endl;
    return 1;
  }
 
  // convert input to double
  const double inputValue = atof(argv[1]);
 
  // calculate square root
  const double outputValue = sqrt(inputValue);
  std::cout << "The square root of " << inputValue << " is " << outputValue
            << std::endl;
  return 0;
}

2.2 构建

Step1目录中创建一个 CMakeLists.txt文件,如下所示:

cmake_minimum_required(VERSION 3.10)
 
# set the project name
# 设置项目名称
project(Tutorial)
 
# add the executable
# 添加可执行文件
add_executable(Tutorial tutorial.cxx)

请注意,在此示例中,我们在CMakeLists.txt文件中使用小写命令。CMake 是支持大写、小写和大小写混合命令。目录中tutorial.cxx提供了 的源代码,Step1可用于计算数字的平方根。

cmake_minimum_required(VERSION <min>[...<max>] [FATAL_ERROR])

设置项目所需的最低 cmake 版本。

CMakeLists.txt时
project(<PROJECT-NAME>
        [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
        [DESCRIPTION <project-description-string>]
        [HOMEPAGE_URL <url-string>]
        [LANGUAGES <language-name>...])
 

设置项目名称,并将其存储在变量PROJECT_NAME中。从顶层调用

CMakeLists.txt时

还会将项目名称存储在变量CMAKE_PROJECT_NAME



link_directories, LINK_LIBRARIES, target_link_libraries使用总结

target_link_libraries 和link_libraries区别_日作诗歌三千首的博客-CSDN博客_target_link_libraries

目录
相关文章
|
4月前
|
Shell iOS开发 MacOS
|
4月前
|
自然语言处理 数据可视化 数据挖掘
带你飞上云端,轻松解析数据——gopup库详细解析--包含安装库教程
本文介绍了Python库gopup,它是一个用于轻松爬取互联网数据的工具,简化了数据收集和处理的过程。文章提供了gopup的安装教程,特别强调了安装时需注意setuptools版本,并给出了PyCharm和命令行两种安装方法。gopup库能获取包括指数、百度和谷歌数据等多种类型的数据。文中还展示了如何使用gopup获取微博指数和豆瓣新片榜数据,并通过代码示例呈现数据和图表。此外,文章提醒了使用时的风险和部分接口的失效情况,并提供了库文档链接以供深入学习。gopup库适用于数据可视化和数据分析,是进行文本挖掘和自然语言处理项目的理想工具。
152 0
带你飞上云端,轻松解析数据——gopup库详细解析--包含安装库教程
|
3月前
|
XML 存储 JSON
51. 【Android教程】JSON 数据解析
51. 【Android教程】JSON 数据解析
72 2
|
14天前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
55 0
|
4月前
|
资源调度 前端开发 JavaScript
第十章(应用场景篇) Single-SPA微前端架构深度解析与实践教程
第十章(应用场景篇) Single-SPA微前端架构深度解析与实践教程
185 0
|
1月前
|
前端开发 JavaScript
|
25天前
|
JSON 数据格式
【Axure高手秘籍】掌握这招,让你的原型设计效率飙升!——元件库导入与使用教程及主流资源下载全解析
【8月更文挑战第20天】Axure RP是界面设计与交互原型制作的强大工具。掌握元件库能显著提升设计效率。元件库包含预设UI元素如按钮、表单等,可直接拖放构建布局。在Axure RP中,通过“元件”选项下的“库”可访问并导入新元件库。导入后,轻松拖放元件至画布调整,甚至自定义样式和交互。利用脚本还能模拟真实交互效果,如按钮点击反馈。推荐资源包括Axure Marketplace、UIZilla等,助力高效设计。
33 0
|
2月前
|
Ubuntu 网络协议
【ubuntu】DNS设置工具resolvectl安装教程
请注意,这些步骤可能会根据你的Ubuntu版本和配置有所不同。如果你在安装过程中遇到问题,可能需要查阅更具体的文档或者寻求专业的技术支持。
128 0
|
3月前
|
XML 存储 JavaScript
50. 【Android教程】xml 数据解析
50. 【Android教程】xml 数据解析
44 1
|
3月前
|
XML Java Android开发
04. 【Android教程】Android 工程解析及使用
04. 【Android教程】Android 工程解析及使用
31 0
04. 【Android教程】Android 工程解析及使用

推荐镜像

更多