C++入门(05-2)从命令行执行C++编译器_GCC

news2024/9/20 9:32:14

文章目录

  • GCC编译器
  • 1. 下载MinGW-w64,安装(不推荐)
  • 2. 使用MSYS2安装MinGW-w64(推荐)
    • 2.1 安装MSYS2
    • 2.2 初始化和更新
    • 2.3 安装MinGW-w64编译器
    • 2.3 在MSYS2 Shell中导航到代码目录
    • 2.4 使用 g++ 编译
    • 2.5 运行可执行文件

GCC编译器

GCC(GNU Compiler Collection)是一个开源编译器集合,是支持多种编程语言的编译器,如C、C++、Fortran、Java等

支持所有主流平台,无论你在哪个平台上学习,GCC提供一致的开发过程,意味着可以在任何环境下练习 C++编程,不用为不同的操作系统寻找不同的编译器。开源且免费,可以集成到其他环境,例如VisualStudioCode中使用

gcc(用于C)
g++(用于C++)
在Windiows中使用,需要单独安装 MinGW(Minimalist GNU for Windows)

MinGW包含了GNU编译器集合,在Windows系统上提供类似于Linux环境的编译器套件

1. 下载MinGW-w64,安装(不推荐)

访问 MinGW-w64官网,downloads页面
Pre-built toolchains and packages 的列表, MinGW-w64 及特定工具的整合包
在这里插入图片描述
下拉,点击 SourceForge,MinGW-w64 的源代码和可执行文件被托管和存储在 SourceForge 上
在这里插入图片描述
单击“Parent folder”
在这里插入图片描述
单击 MinGW-w64-install.exe
在这里插入图片描述
浏览器打开如下页面并自动下载在这里插入图片描述
在这里插入图片描述但这仅仅是个安装器,需要在线安装,对网络环境比较苛刻,经常会出现兼容性或下载失败的问题,并不好用,例如
在这里插入图片描述

2. 使用MSYS2安装MinGW-w64(推荐)

替代安装MinGW-w64
MSYS2提供了一个稳定的方式来安装MinGW-w64编译器,带有包管理功能
https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/
在这里插入图片描述
在这里插入图片描述

2.1 安装MSYS2

一路默认设置即可,要安装在一个不包含空格和特殊字符的路径中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
会等一段时间,到这里 Finish
在这里插入图片描述

2.2 初始化和更新

开始菜单找到,MSYS2 MSYS , 这是MSYS2的基础Shell环境,通常称为“MSYS2 Shell”
在这里插入图片描述
这里提示一下,你会发现开始菜单里有很多shell环境,包括想要的MinGW64,但这并不意味着系统已经完全安装和配置好MinGW-w64的编译器。这些Shell环境只是一个“入口”,并不保证编译器工具链已经安装。

MSYS2 Shell 运行命令更新软件包数据库和安装的软件包
MSYS2 的包管理(pacman)

pacman -Syu

在更新过程中提示关闭并重启MSYS2
请按照提示操作并重新执行 pacman -Syu 完成更新
在这里插入图片描述

2.3 安装MinGW-w64编译器

MSYS2 Shell 运行命令

pacman -S mingw-w64-x86_64-gcc

安装32位MinGW-w64编译器(可选)
pacman -S mingw-w64-i686-gcc
在这里插入图片描述

2.3 在MSYS2 Shell中导航到代码目录

菜单里可以选择 MSYS2 MSYS、MSYS2 MINGW64
在这里插入图片描述
在MSYS2 Shell中导航到代码目录,然后使用 g++ 编译C++程序

使用以下命令查看当前所在的目录

pwd

在这里插入图片描述
导航到代码CPP所在目录 D:\code\CPPCode\calculator
在这里插入图片描述
需要按如下方式导航,MSYS2使用UNIX风格的路径,盘符被映射为 /c /d 等

cd /d/code/cppcode/calculator

查看目录内容

ls

在这里插入图片描述
其他
返回上一级目录 cd ..
返回MSYS2的根目录cd /
导航到用户主目录cd ~
通常会导航到 /home/你的用户名。
在这里插入图片描述
在这里插入图片描述

2.4 使用 g++ 编译

使用g++编译我们的计算器源程序 calculator.cpp

g++ calculator.cpp -o calculator.exe

从源代码到实际运行的程序,g++完成所有必要的编译和链接步骤
在这里插入图片描述
g++ 是GCC(GNU Compiler Collection) 中的 C++ 前端,专用于处理 C++ 源代码(.cpp)

-o 是输出选项,制定编译后的输出文件的名称,如果不使用,编译器会默认将生成的可执行文件命名为 a.exe (Windows)或者 a.out (Linux/Unix)

2.5 运行可执行文件

./calculator.exe

在这里插入图片描述

./ 表示当前目录,在MSYS2和其他类UNIX环境中,运行当前目录下的可执行文件,使用 “ ./ ”

默认情况下,在MSYS2环境中运行自己编译的可执行文件不需要额外的权限,如果遇到权限问题,可以使用 chmod +x calculator.exe 为文件增加执行权限(通常不需要)

如果不在生成文件的目录中运行,也可以使用文件的完整路径执行

/d/code/cppcode/calculator/calculator.exe

在这里插入图片描述

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

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

相关文章

【Qt】qt发布Release版本,打包.exe可执行文件

前言:Qt编译的可执行程序,如果直接运行,会出现0xc000007b报错,或者“由于占不到Qt5Network.dll,无法继续执行代码。重新安装程序可能会解决此问题”的报错,因为缺少相关的依赖包和动态库。 1、第一步:找到…

仕考网:大三能考公务员吗?

本科生在大三阶段不具备报考资格,因为尚未完成学业并不是应届生。专科生在大三时则属于应届生,有资格参加公务员考试。 公务员报考条件包括: 1.国籍; 2.年龄于18至35周岁之间,对于当年毕业的硕士或博士研究生,年龄限…

Python: #!/usr/bin/python3 #!/usr/bin/env python3

只能放在第一行,第二行就没有效果了。 1. 路径不同 #!/usr/bin/python3&& #!/usr/bin/env python3写在脚本语言第一行的目的是 想要以什么可执行程序去运行这个文件中的代码。 #!/usr/bin/python3是告诉操作系统执行这个脚本的时候,调用/usr/bin…

Linux之ebpf(3)uprobe与ebpf

Linux之ebpf(3)uprobe简要使用 Author: Once Day Date: 2024年9月5日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: Linux基础知识_Once-Day的博客…

心脑血管科张景龙医生:冠状动脉狭窄的症状与检查方法

冠状动脉狭窄作为一种常见的心血管疾病,其症状的出现往往与心肌供血不足密切相关。了解这些症状以及如何进行准确的检查,对于及早发现、诊断和治疗冠状动脉狭窄至关重要。本文将详细介绍冠状动脉狭窄的常见症状及检查方法。 冠状动脉狭窄的常见症状 1、…

电路笔记 控制(PID):Proportional–integral–derivative controller 比例-积分-微分控制器与仿真

PID控制(Proportional-Integral-Derivative Control)是一种常用的反馈控制算法,广泛应用于自动控制系统中。PID控制器通过对比例、积分和微分三项的计算,生成控制输出来调节系统的行为,以使其达到期望的目标值。 PID控…

利用人类反馈优化文本摘要质量

人工智能咨询培训老师叶梓 转载标明出处 精准评估和提升模型生成文本的质量,尤其是自动文摘的质量,成为了一个日益突出的挑战。传统的评估方法,如ROUGE指标,虽然在一定程度上能够衡量摘要的相关性,但往往无法全面反映…

Java算法:最大间距

前言 在处理数据密集型应用时,提高查询性能显得尤为关键。 解决最大间隔问题——即确定一组数值中最宽的相邻元素距离——是此类任务中的一大挑战。 该问题不仅在算法竞赛中常见,也是软件工程师面试的一个焦点,解决方法多样,包…

【B题第三套完整论文已出】2024数模国赛B题第三套完整论文+可运行代码参考(无偿分享)

基于多阶段优化的电子产品质量控制与成本管理研究 摘要 随着现代制造业和智能化生产的发展,质量控制和生产优化问题成为工业管理中的重要研究课题。本文针对电子产品生产过程中质量控制和成本优化中的问题,基于系统优化和决策分析思想,通过…

【C++ Primer Plus习题】12.1

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include "Cow.h" u…

空气能热泵热水器

空气能热泵热水器压缩机把低温低压气态冷媒转换成高压高温气态&#xff0c;压缩机压缩功能转化的热量为q1&#xff0c;高温高压的气态冷媒与水进行热交换&#xff0c;高压的冷媒在常温下被冷却、冷凝为液态。这过程中&#xff0c;冷媒放出热量用来加热水&#xff0c;使水升温变…

机器学习数学公式推导之降维

文章目录 降维线性降维-主成分分析 PCA损失函数SVD 与 PCoASVD 的基本形式SVD 的计算p-PCA 小结 P22 (系列五) 降维1-背景 本文参考 B站UP: shuhuai008 &#x1f339;&#x1f339; 降维 我们知道&#xff0c;解决过拟合的问题除了正则化和添加数据之外&#xff0c;降维就是最…

数据链路层与ARP协议

一.认识识以太网 "以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内 容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等; 以太网中的网线必须使用双绞线; 传输速率有 10M, 100M, 1000M 等; 以太网是当前应用…

【最新华为OD机试E卷-支持在线评测】机器人活动区域(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

2024年【金属非金属矿山(露天矿山)安全管理人员】考试题及金属非金属矿山(露天矿山)安全管理人员最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试题参考答案及金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试试题解析是安全生产模拟考试一点通题库老师及金属非金属矿山&#xf…

Java魔板游戏软件(含代码)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

【第0007页 · 数组】数组中重复的数据(如何实现数组的原地修改)

【前言】本文以及之后的一些题解都会陆续整理到目录中&#xff0c;若想了解全部题解整理&#xff0c;请看这里&#xff1a; 第0007页 数组中重复的数据 今天&#xff0c;我们来看一个在实际工作中运用不多&#xff0c;但是对于一些算法题还是有必要的奇技淫巧——数组的原地修…

基于开源链动 2 + 1 模式、AI 智能名片与 S2B2C 商城小程序的用户忠诚度计划

摘要&#xff1a;本文深入探讨了在商业环境中执行用户忠诚度计划的创新途径。通过整合开源链动 2 1 模式、AI 智能名片以及 S2B2C 商城小程序等先进元素&#xff0c;从提供福利、解决问题和创造赚钱机会三个核心方面展开详细阐述。研究表明&#xff0c;这些新技术和新模式的有…

LLM大模型:将爬虫与大语言模型结合

摘要 Web自动化是一种重要技术&#xff0c;通过自动化常见的Web操作来完成复杂的Web任务&#xff0c;可以提高运营效率并减少手动操作的需要。 传统的实现方式&#xff0c;比如包装器&#xff0c;当面对新的网站时&#xff0c;面临着适应性和可扩展性的限制。 另一方面&…

国内短剧系统怎么搭建以及都需要那些资质?

聊到国内短剧&#xff0c;相信大家都不陌生&#xff0c;在各大短视频平台可谓是火的一批&#xff0c;您或许有想加入进来的想法&#xff0c;或是已经有规划还未实现的&#xff0c;请停下脚步&#xff0c;耐心看完该文章&#xff0c;相信一定会对你有所帮助的。本文介绍短剧平台…