简单CMake入门

news2024/11/22 12:14:31
CMake可以生成不同平台下的Makefile,有了CMake不用再写复杂的Makefile

视频教程:CMake 6分钟入门,不用再写复杂的Makefile

先前知识

Makefile简单入门

Cmake特性

CMake是一个用于管理C/C++项目的跨平台构建工具

  1. 跨平台:CMake是跨平台的,可以在多种操作系统上使用,包括Windows、Linux、macOS等。它可以生成适用于各种编译器和构建系统的配置文件。

  2. 自动生成构建系统:CMake的一个主要特点是它可以自动生成适用于不同构建工具的配置文件,如Makefiles、Visual Studio项目文件、Xcode项目文件等。这使得开发人员能够轻松地在不同平台上构建和编译项目。

Cmake简单示例

cmake_minimum_required(VERSION 3.10)

project(hello)

add_executable(hello main.cpp factorial.cpp printhello.cpp)

将过程文件放在当前文件夹下

在当前文件夹learn_makefile执行以下命令:

cmake .
make
./hello

在这里插入图片描述

将过程文件单独放置在一个文件夹下

新建build文件夹

进入build文件夹,在build文件夹下,执行以下命令:

cmake .. # 去上一层文件中去找CMakeLists.txt文件来进行构建

make # 此时所有的一切都是在build的目录下生成的

./hello

在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1178771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS示例001:鼠标放div上,实现旋转、放大、移动等效果

GPT能够很好的应用到我们的代码开发中,能够提高开发速度。你可以利用其代码,做出一定的更改,然后实现效能。 css实战中,经常会看到这样的场景,鼠标放到一个图片或者一个div块状时候,会出现旋转、放大、移动…

webgoat-Insecure Deserialization不安全的序列化

A(8)不安全的反序列化 反序列化是将已序列化的数据还原回对象的过程。然而,如果反序列化是不安全的,那么恶意攻击者可以在序列化的数据中夹带恶意代码,从而在反序列化时执行这些代码。这种攻击被称为反序列化。 什么…

2023年中国大学生程序设计竞赛女生专场题解, K. RSP

Dashboard - 2023年中国大学生程序设计竞赛女生专场 - Codeforces K. RSP time limit per test1 second memory limit per test512 megabytes input standard input output standard output 小 A 和小 B 在玩一种叫做石头剪刀布的游戏。 这个游戏的规则很复杂&#xff0c…

Java8强大的新特性 —— “Stream API”

一、什么是Stream API? Java Stream API是Java 8中引入的一个重要功能,它允许开发者以声明性方式处理数据集合,使代码更加简洁、可读性更好,同时还提供了并行操作的能力,从而能够更有效地利用多核处理器。 Stream AP…

1.RestCloud部署安装

一、背景 项目使用StarRocks数仓,在网上找了一遍ETL工具,本来想用DataX ,但考虑到DataX的学习成本就没使用,最后找到了RestCloud,RestCloud提供了社区开源版本,提供图形化的操作界面,相对于DataX来说更容易上手。 二、环境准备 RestCloud依赖的环境如下: 1.安装准备…

『亚马逊云科技产品测评』活动征文|EC2云服务器一键部署wordpress博客

『亚马逊云科技产品测评』活动征文|EC2云服务器一键部署wordpress博客 授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技…

嵌入式面试常见问题(三)

1.linux下的proc文件夹是干什么的? 进程信息:/proc文件夹包含有关系统上运行的每个进程的信息。您可以在/proc中找到以进程ID(PID)为名称的子文件夹,每个子文件夹包含有关特定进程的信息,如状态、命令行参数…

案例研究|腾讯音乐娱乐集团与JumpServer共探安全运维审计解决方案

近年来,得益于人民消费水平的提升以及版权意识的加强,用户付费意愿和在线用户数量持续增长,中国在线音乐市场呈现出稳定增长的发展态势。随着腾讯音乐于2018年12月上市,进一步推动了中国在线音乐市场的发展。 腾讯音乐娱乐集团&a…

了解计算机的大小端存储模式

我们在计算机中存储数据时,数据是如何组织和表示的是一个重要的问题。其中一个关键概念是 大小端存储模式(Endianness),它描述了多字节数据在内存中的存储方式。本文将介绍大小端存储模式的原理、应用和区别。 什么是大小端存储模…

国外住宅IP代理选择的8个方法,稳定的海外IP哪个靠谱?

一、国外住宅IP代理是什么? 代理服务器充当您和互联网之间的网关。它是一个中间服务器,将最终用户与他们浏览的网站分开。如果您使用国外代理IP,互联网流量将通过国外代理服务器流向您请求的地址。然后,请求通过同一个代理服务器…

【独立开发】跨境电商商城源码!源码全开源,无加密,软著加持,交付源码!

大家好,今天要给大家带来一个重磅好消息! 一直在寻找优质跨境电商源码?那么这个你一定不能错过! 1、独立开发:这款源码是由我们团队独立开发,从需求分析、设计、编码到测试,全部由我们亲自完成。这里没有中间商,也没有…

小红书运营篇1,新手如何快速分析拆解对标账号

hi,同学们,本期是第1期AI运营技巧篇 很多新手博主初期都非常迷茫,主要是因为他们没有找对标账号,也没有充分分析同行账号。 有些人可能会说,“我不想参考同行,我想要追求创新”。这种勇气是真的非常值得鼓…

【Unity实战】最全面的库存系统(一)(附源码)

文章目录 先来看看最终效果前言定义物品定义人物背包物品插槽数据拾取物品物品堆叠绘制UI移动拖拽物品选中物品跟随鼠标移动背包物品交换物品拆分物品物品堆叠源码完结先来看看最终效果 前言 它又来了,库存系统我前面其实一句做过很多次了,但是这次的与以往的不太一样,这个…

浅谈电力物联网时代物联网技术在电力系统中的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定201801 摘要:在电力系统建设中,物联网的应用不仅促进了我国电力工业的发展,而且对我国的物联网技术也起到了一定的促进作用。随着物联网技术应用于电力系统,推动了中国工业的快速发展。因…

Electron[3] 基础配置准备和Electron入门案例

1 背景 上一篇文章已经分享了,如何准备Electron的基础环境了。但是博客刚发才一天,就发现有人问问题了。经过实践发现,严格按照作者的博客教程走是不会有问题的,其中包括安装的环境版本等都要一致。因为昨天发的博客,…

【Java 进阶篇】JSP 指令详解

JavaServer Pages(JSP)是一种用于开发动态 Web 应用程序的强大技术。与传统的 Servlet 编程相比,JSP 更易于编写和维护。在 JSP 中,我们可以使用指令来定义页面的行为和属性。本博客将深入探讨 JSP 中的指令,从入门到精…

MacBook 上运行火影忍者,下载安装详细教程仅需简单三步

以前一直用 Mac 玩金铲铲或者原神,没想到前两天看到有个朋友居然在 Mac 上玩起了火影,哇,超帅的,今天跟大家分享一下如何在 mac 上安装运行火影,非常的丝滑~ 1、首先我们安装 playCover playCover 是我们在 Mac 上运…

高数笔记05:不定积分与定积分

图源:文心一言 时间比较紧张,仅导图~~🥝🥝 第1版:查资料、画导图~🧩🧩 参考资料:《高等数学 基础篇》武忠祥 🐳目录 🐳目录 🐳不定积分 &#…

IDEA中配置Maven

一、Maven下载 首先我们进入maven官方网站,进入网页后,点击Download去下载 下载免安装版,解压即可,解压至磁盘任意目录,尽量不要取中文名如下图: 二、配置Maven环境变量 复制Maven所在的路径 D:\maven\apache-maven-3.6.3,此电脑右键选择属性->高级系统设置->环境…

交通网络分析之交通规则

目的 我们现实中的路网,不是所有道路都是双向通行的,会存在单向通行、禁止通行等情况,这种情况在交通分析中该如何处理? 这种应用场景在SuperMap iDesktopX中如何去处理呢,下面跟着我一起看看吧。 功能介绍 首先&#…