当前位置: 首页 > news >正文

CMake入门教程【基础篇】CMake+Minggw构建项目

文章目录

  • Minggw是什么
  • Minggw下载
  • CMake下载安装
      • 第1步:下载CMake
      • 第2步:安装CMake
  • 如何构建和编译项目:使用CMake和MinGW
  • 总结

Minggw是什么

MinGW(Minimalist GNU for Windows)是一个免费的软件开发环境,旨在提供一个符合POSIX的最小工具集,用于在Microsoft Windows平台上进行本地Windows应用程序的开发。它包括一组可以生成原生Win32程序的开发工具,比如GCC(GNU编译器集合),它支持C、C++、和Fortran语言。MinGW提供了一个基本的开源编译环境,无需复杂的运行时依赖,因此它广受Windows平台上使用GNU工具的开发者欢迎。简而言之,MinGW是一个使GNU工具在Windows上可用的轻量级解决方案。

Minggw下载

https://www.mingw-w64.org/downloads/#mingw-builds
在这里插入图片描述

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

CMake下载安装

第1步:下载CMake

https://cmake.org/
在这里插入图片描述

首先,访问CMake官方网站。在这里,您会找到适用于不同操作系统的CMake版本。对于Windows用户,您应该下载“.msi”安装文件,这是一个标准的Windows安装包。
在这里插入图片描述

  • windows
    下载 cmake-3.28.1-windows-x86_64.msi

第2步:安装CMake

下载完毕后,双击“.msi”文件开始安装过程。您将被引导通过几个简单的步骤:

  1. 许可协议:阅读并接受许可协议。
  2. 选择安装目录:可以选择默认路径,或自定义安装路径。
  3. 添加环境变量:建议选择将CMake添加到系统PATH,这样可以在任何命令行界面中直接使用CMake。

完成这些步骤后,继续安装过程并等待其完成。

如何构建和编译项目:使用CMake和MinGW

  • main.cpp
#include <iostream>int main() {std::cout << "Hello, CMake and MinGW!" << std::endl;return 0;
}
  • CMakeLists.txt
cmakeCopy codecmake_minimum_required(VERSION 3.10)
project(MyProject VERSION 1.0)add_executable(MyApp main.cpp)
  • 生成构建文件

打开命令行工具,并切换到您的项目目录。使用以下命令来生成MinGW的Makefiles:

cmake -G "MinGW Makefiles" .

这条命令告诉CMake使用MinGW Makefiles生成器,并在当前目录下创建必要的构建文件。

  • 编译项目

一旦生成了构建文件,使用Make来编译您的项目:

mingw32-make

这条命令将调用MinGW的make工具来编译项目。

  • 运行程序

编译完成后,您将在项目目录中看到一个可执行文件MyApp.exe(或者只是MyApp,这取决于您的CMake配置)。运行这个可执行文件:

./MyApp

控制台

输出“Hello, CMake and MinGW!”

总结

通过这些步骤,您应该能够使用CMake和MinGW在Windows上成功地构建和编译一个简单的C++项目。这个过程展示了CMake在构建项目时的强大功能,以及MinGW作为编译器的灵活性和效率。

相关文章:

CMake入门教程【基础篇】CMake+Minggw构建项目

文章目录 Minggw是什么Minggw下载CMake下载安装第1步&#xff1a;下载CMake第2步&#xff1a;安装CMake 如何构建和编译项目&#xff1a;使用CMake和MinGW总结 Minggw是什么 MinGW&#xff08;Minimalist GNU for Windows&#xff09;是一个免费的软件开发环境&#xff0c;旨在…...

2024年原创深度学习算法项目分享

原创深度学习算法项目分享&#xff0c;包括以下领域&#xff1a; 图像视频、文本分析、知识图谱、推荐系统、问答系统、强化学习、机器学习、多模态、系统界面、爬虫、增量学习等领域… 有需要的话&#xff0c;评论区私聊...

Linux自定义shell编写

Linux自定义shell编写 一.最终版本展示1.动图展示2.代码展示 二.具体步骤1.打印提示符2.解析命令行3.分析是否是内建命令1.shell对于内建名令的处理2.cd命令3.cd函数的实现4.echo命令的实现5.export命令的实现6.内建命令函数的实现 4.创建子进程通过程序替换执行命令5.循环往复…...

堆的应用:堆排序和TOP-K问题

上次才讲完堆的相关问题&#xff1a;二叉树顺序结构与堆的概念及性质&#xff08;c语言实现堆 那今天就接着来进行堆的主要两方面的应用&#xff1a;堆排序和TOP-K问题 文章目录 1.堆排序1.1概念、思路及代码1.2改良代码&#xff08;最初建立大堆用AdjustDow&#xff09; 2. TO…...

element表格排序功能

官方展示 个人项目 可以分别对每一项数据进行筛选 注&#xff1a;筛选的数据不能是字符串类型必须是数字类型&#xff0c;否则筛选会乱排序 html <el-table :data"tableData" border height"600" style"width: 100%"><el-table-co…...

HNU-Java程序设计基础训练-2023

1.DNA序列&#xff08;Java&#xff09; 【问题描述】 一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例&#xff08;定义为GC-Ratio&#xff09;是序列中G和C两个字母的总的出现次数除以总的字母数目&#xff08;也就是序列长度&#xff09;。在基因工程中&#xf…...

数据库和数据库编程

数据库、数据表、表数据操作以及数据库编程相关的知识点 1. 数据库的概念&#xff1a; 数据库是用于存储和组织数据的系统。数据库管理系统(DBMS)是管理数据库的软件&#xff0c;提供对数据的访问、查询和维护。关系型数据库是一种通过表格结构来组织和管理数据的数据库。 2…...

爬虫基础一(持续更新)

爬虫概念&#xff1a; 通过编写程序&#xff0c;模拟浏览器上网&#xff0c;然后让其去互联网上抓取数据的过程 分类&#xff1a; 1&#xff0c;通用爬虫&#xff1a;抓取一整张页面数据 2&#xff0c;聚焦爬虫&#xff1a;抓取页面中的局部内容 3&#xff0c;增量式爬虫&…...

右键菜单“以notepad++打开”,在windows文件管理器中

notepad 添加到文件管理器的右键菜单中 找到安装包&#xff0c;重新安装一般即可。 这里有最新版&#xff1a;地址 密码:f0f1 方法 在安装的时候勾选 “Context Menu Entry” 即可 Notepad的右击打开文件功能 默认已勾选 其作用是添加右键快捷键。即&#xff0c;对于任何…...

JSON.parseObject强制将自动转化的Intage型设置为Long型

通过Redis或Caffeine存储入json型String&#xff0c;通过JSON.parseObject自动类型转化之后&#xff0c;数值会优先转为Intage&#xff0c;如果存入的字符值大于Intage最大值&#xff0c;会自动转为Long型&#xff1b; 需求是&#xff1a;实要取出时数值类型值为Long&#xff1…...

Redis的集群模式:主从 哨兵 分片集群

基于Redis集群解决单机Redis存在的问题&#xff0c;在之前学Redis一直都是单节点部署 单机或单节点Redis存在的四大问题&#xff1a; 数据丢失问题&#xff1a;Redis是内存存储&#xff0c;服务重启可能会丢失数据 > 利用Redis数据持久化的功能将数据写入磁盘并发能力问题…...

Note: An Interesting Festival

An Interesting Festival 一个有趣的节日。 festival The Agricultural Feast takes place after the independence Day. 农业盛会在独立日后举行 takes place independence feast agricultural It is not a worldwide celebration. 它不是一个全球的庆典。 worldwide ce…...

iview表格固定列横向滚动条无法拖动问题

文章目录 问题解决办法 问题 在使用iview的表格组件时&#xff0c;遇到了设置固定列表格后滚动条无法拖动的问题&#xff0c;当对表格列进行固定后&#xff0c;底部的横向滚动条就无法拖动了&#xff0c;主要的问题就是固定区域盖住了横向滚动条。 解决办法 在组件内直接加下…...

Python序列之集合

系列文章目录 Python序列之列表Python序列之元组Python序列之字典Python序列之集合&#xff08;本篇文章&#xff09; Python序列之集合 系列文章目录前言一、集合是什么&#xff1f;二、集合的操作1.集合的创建&#xff08;1&#xff09;使用{}创建&#xff08;2&#xff09;…...

智慧园区物联综合管理平台之架构简述

总体架构 系统总体划分为物联感知系统层、 核心平台层、 综合运营服务平台和展示层四部分。 物联感知系统层 物联感知系统主要是支撑园区智能化运行的各子系统, 包括门禁系统、 视频监控系统、 车辆管理系统等。 核心平台层 核心平台层包括: 园区物联综合管理平台和园区…...

国科大图像处理2023速通期末——汇总2017-2019

国科大2023.12.28图像处理0854期末重点 图像处理 王伟强 作业 课件 资料 一、填空 一个阴极射线管它的输入与输出满足 s r 2 sr^{2} sr2&#xff0c;这将使得显示系统产生比希望的效果更暗的图像&#xff0c;此时伽马校正通常在信号进入显示器前被进行预处理&#xff0c;令p…...

oracle 9i10g编程艺术-读书笔记2

配置Statspack 安装Statspack需要用internal身份登陆&#xff0c;或者拥有SYSDBA(connect / as sysdba)权限的用户登陆。需要在本地安装或者通过telnet登陆到服务器。 select instance_name,host_name,version,startup_time from v$instance;检查数据文件路径及磁盘空间&…...

PACC:数据中心网络的主动 CNP 生成方案

PACC&#xff1a;数据中心网络的主动 CNP 生成方案 文章目录 PACC&#xff1a;数据中心网络的主动 CNP 生成方案PACC算法CNP数据结构PACC参数仿真结果参考文献 PACC算法 CNP数据结构 PACC参数 仿真结果 PACC Hadoop Load0.2 的情况&#xff1a; PACC Hadoop Load0.4 的情况&a…...

我最喜欢的趣味几何书-读书笔记

我最喜欢的趣味几何书-读书笔记 1、利用阴影的长度来测量 公元前6世纪&#xff0c;古希腊哲学家泰勒思为了测量金字塔&#xff0c;想到了这样的方法&#xff1a;选择了一个特殊的时间&#xff0c;在那个时间&#xff0c;他自身的影子长度刚好跟他的身高相等。此时&#xff0c…...

Stable Diffusion模型概述

Stable Diffusion 1. Stable Diffusion能做什么&#xff1f;2. 扩散模型2.1 正向扩散2.2 反向扩散 3. 训练如何进行3.1 反向扩散3.2 Stable Diffusion模型3.3 潜在扩散模型3.4 变分自动编码器3.5 图像分辨率3.6 图像放大 4. 为什么潜在空间是可能的&#xff1f;4.1 在潜在空间中…...

在多模型AI应用开发中利用Taotoken实现成本与性能的平衡

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在多模型AI应用开发中利用Taotoken实现成本与性能的平衡 开发一个复杂的AI应用&#xff0c;往往意味着需要调用多个模型来完成不同…...

如何快速掌握BepInEx插件开发:面向初学者的完整指南

如何快速掌握BepInEx插件开发&#xff1a;面向初学者的完整指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx是Unity游戏插件开发的终极框架&#xff0c;让普通玩家也能…...

Ubuntu 全面拥抱 Rust 后,我意识到 Rust 社区要变了

文章目录Ubuntu 全面拥抱 Rust 后&#xff0c;我意识到 Rust 社区要变了“赢”与挑战并存从早期采用者到早期大众如何将应用推广转化为实际投入Rust 社区最需要的是共情小结Ubuntu 全面拥抱 Rust 后&#xff0c;我意识到 Rust 社区要变了 Canonical 正在全面推进 Ubuntu 系统向…...

使用 Taotoken CLI 工具一键配置多开发环境与团队协作密钥

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用 Taotoken CLI 工具一键配置多开发环境与团队协作密钥 在团队协作开发中&#xff0c;统一大模型 API 的接入配置是一项基础但繁…...

别再死记硬背了!图解STM32按键状态机:从消抖到双击识别的完整逻辑(蓝桥杯适用)

图解STM32按键状态机&#xff1a;从消抖到双击识别的可视化逻辑拆解 在嵌入式开发中&#xff0c;按键处理看似简单&#xff0c;实则暗藏玄机。许多初学者在实现短按、长按和双击识别时&#xff0c;往往陷入代码调试的泥潭——明明逻辑看起来正确&#xff0c;实际运行却总出现误…...

告别枯燥界面!用Qt自定义控件打造游戏化HMI:雷达扫描与摇杆交互完整指南

告别枯燥界面&#xff01;用Qt自定义控件打造游戏化HMI&#xff1a;雷达扫描与摇杆交互完整指南 工业软件界面长期被诟病"功能强大但体验生硬"&#xff0c;而游戏行业早已验证了动态交互对用户注意力的魔法般吸引力。当特斯拉将赛车游戏UI引入车载系统&#xff0c;当…...

从CTF赛题到真实漏洞:LFSR与BM算法在流密码攻击中的实战指南

从CTF赛题到真实漏洞&#xff1a;LFSR与BM算法在流密码攻击中的实战指南 在网络安全竞赛中&#xff0c;线性反馈移位寄存器&#xff08;LFSR&#xff09;类题目一直是密码分析方向的经典题型。许多参赛者第一次接触这类题目时&#xff0c;往往会被其数学理论吓退&#xff0c;但…...

如何用AEUX免费实现设计到动画的无缝转换:完整指南

如何用AEUX免费实现设计到动画的无缝转换&#xff1a;完整指南 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX AEUX是一款免费开源的动效设计工具&#xff0c;它能让你从Figma或Sketch直…...

别再自己编译了!Ubuntu 18.04下用apt一键安装Intel RealSense D435i驱动(附避坑指南)

告别编译烦恼&#xff1a;Ubuntu 18.04下Intel RealSense D435i驱动一键安装全攻略 在计算机视觉和机器人开发领域&#xff0c;Intel RealSense系列深度相机因其出色的性能和相对亲民的价格&#xff0c;成为了许多开发者的首选硬件。然而&#xff0c;对于初次在Linux系统下配置…...

code2prompt:AI编程助手的高效代码上下文生成工具详解

1. 项目概述&#xff1a;从代码到提示词的“翻译官”最近在折腾一些AI辅助编程或者代码分析的工具时&#xff0c;我经常遇到一个头疼的问题&#xff1a;如何把我手头的一大段项目代码&#xff0c;高效、准确地“喂”给像ChatGPT、Claude或者GitHub Copilot这样的AI助手&#xf…...