C++系列-附录-windows下安装C++环境

C++系列-附录-windows下安装C++环境

在这里插入图片描述

在线练习:
http://noi.openjudge.cn/
https://www.luogu.com.cn/

参考

Windows搭建C++编程环境(VSCode+Mingw-w64)
C++编译器有哪些
MSYS2 介绍、下载与安装、Pacman常用命令

C++编译器简介

常见的C++编译器

C++编译器是将C++源代码翻译成可执行程序的工具。以下是一些常见的C++编译器:

GCC(GNU Compiler Collection):GCC 是一个开源的编译器套件,包含了用于编译C、C++和其他语言的编译器。它是一个非常流行的编译器,可在多个平台上使用,包括Linux、Mac OS X和Windows。GCC使用G++来编译C++代码。

Clang:Clang 是一个基于LLVM的编译器前端,支持C、C++和Objective-C。它具有高度的兼容性、优秀的错误诊断能力和快速的编译速度。Clang在许多平台上可用,并被广泛应用于开发工具和IDE中。

Visual C++:Visual C++ 是微软公司开发的C++编译器。它是Windows平台上的主要C++编译器,与Visual Studio集成,提供了丰富的开发工具和调试功能。

Intel C++ Compiler:Intel C++ Compiler 是英特尔公司提供的优化C++编译器。它针对英特尔处理器进行了优化,可以生成高度优化的代码,并提供了一些高级优化技术,如向量化和多线程支持。

IBM XL C++:IBM XL C++ 是IBM公司提供的C++编译器。它主要用于IBM Power 和IBM System z平台,支持标准的C++语言规范,并提供了一些针对这些平台的优化特性。

除了上述列举的编译器之外,还有许多其他的C++编译器可供选择,包括TDM-GCC、MinGW等。选择适合自己需求的编译器取决于操作系统、平台、性能需求和个人偏好等因素。

常见的C++ 编译器的命令示例

以下是上述几个常见的 C++ 编译器的命令示例:

GCC(G++):

g++ my_program.cpp -o my_program

这个命令使用 g++ 编译器来编译名为 my_program.cpp 的源文件,并将生成的可执行文件命名为 my_program。

Clang:

clang++ my_program.cpp -o my_program

这个命令使用 clang++ 编译器来编译名为 my_program.cpp 的源文件,并将生成的可执行文件命名为 my_program。

Visual C++:

cl /EHsc my_program.cpp

这个命令使用 cl 命令来调用 Visual C++ 编译器,编译名为 my_program.cpp 的源文件,并生成可执行文件。

Intel C++ Compiler:

icpc my_program.cpp -o my_program

这个命令使用 icpc 编译器来编译名为 my_program.cpp 的源文件,并将生成的可执行文件命名为 my_program。

IBM XL C++:

xlC my_program.cpp -o my_program

这个命令使用 xlC 编译器来编译名为 my_program.cpp 的源文件,并将生成的可执行文件命名为 my_program。

请注意,以上示例中的命令只是一些简单的编译示例,并可能需要根据实际情况进行适当调整。每个编译器的命令行选项和用法可能会有所不同,请参考相应编译器的文档或使用相应的帮助命令来获取详细的信息和用法。

MinGW

MinGW(Minimalist GNU for Windows)是一套在Windows上使用GCC工具链的开发工具集合。它提供了一系列命令来编译和构建C++程序。以下是一些常见的MinGW命令示例:
编译单个源文件:

g++ my_program.cpp -o my_program

这个命令使用g++编译器编译名为my_program.cpp的源文件,并将生成的可执行文件命名为my_program。

编译多个源文件并链接:

g++ file1.cpp file2.cpp -o my_program

这个命令使用g++编译器分别编译名为file1.cpp和file2.cpp的源文件,然后将它们链接在一起生成可执行文件my_program。

指定头文件和库文件的路径:

g++ main.cpp -o my_program -I include_directory -L lib_directory -l my_library

这个命令使用g++编译器编译名为main.cpp的源文件,并将生成的可执行文件命名为my_program。使用-I选项指定包含头文件的目录,-L选项指定包含库文件的目录,-l选项指定要链接的库文件。

生成调试信息:

g++ my_program.cpp -o my_program -g

这个命令使用g++编译器编译名为my_program.cpp的源文件,并将生成的可执行文件命名为my_program。使用-g选项生成调试信息,以便在调试时使用。

这些命令示例展示了在MinGW环境下使用g++编译器的一些常见用法。请注意,具体的命令选项和用法可能会因MinGW版本和个人设置而有所不同。您可以参考MinGW的文档或使用g++ --help命令来获取更详细的信息和用法。
为什么MinGW的命令和GCC一样

MinGW 是一个在 Windows 平台上使用 GCC 工具链的开发工具集合。它提供了 GCC 编译器套件的 Windows 版本,并通过命令行界面(CLI)提供与 GCC 类似的命令和选项。

MinGW 的目标是在 Windows 环境中提供一个开发环境,使开发者能够使用 GCC 编译器来编译和构建 C++ 程序。为了实现这一目标,MinGW 采用了 GCC 的命令行界面和选项。这样,开发者可以直接在 Windows 命令提示符或其他终端中使用熟悉的 GCC 命令来进行编译和构建操作,而无需学习新的命令和选项。

因此,MinGW 的命令与 GCC 的命令是相似的,因为 MinGW 实际上是使用了 GCC 的工具链和命令行界面。这使得在 Windows 环境中进行 C++ 开发时,可以直接迁移和使用熟悉的 GCC 命令,而无需额外学习其他特定于 Windows 的工具和命令。

需要注意的是,虽然 MinGW 命令和 GCC 命令在语法和选项上非常相似,但在一些特定情况下可能会有一些差异。这可能是因为 MinGW 在 Windows 环境中提供了一些特定的功能、适配了 Windows 平台的特性,或者在 MinGW 版本之间存在一些微小的差异。因此,在使用 MinGW 命令时,仍然建议参考 MinGW 的文档和资源,以确保正确理解和使用命令的特定行为和选项。

MSYS2 对比 MinGW-w64 对比 Cygwin

MSYS2是一个包含MinGW-w64工具链、GNU工具集和一些开源库的平台,它提供了一种在Windows上编译和运行Unix/Linux程序的方式。MSYS2与MinGW-w64相似,但比MinGW-w64更完整和稳定,提供了Pacman包管理器以方便用户安装和管理软件包。
下载地址:https://www.msys2.org/

MinGW-w64是一个Windows下的C/C++编程工具集,它提供了运行在Windows上的GNU工具集和GCC编译器。MinGW-w64与MSYS2类似,但主要用于编译Windows本地应用程序,而非Unix/Linux程序。MinGW-w64也可以用于交叉编译,为其他平台生成Windows可执行文件。
下载地址:https://www.mingw-w64.org/

Cygwin是一个在Windows平台上运行的兼容性层,提供了类Unix环境的工具和开发库。Cygwin将Unix程序编译为Windows本地代码,然后在Windows上运行。它提供了最完整的Linux/Unix环境,但相对于MSYS2和MinGW-w64,Cygwin的性能较差。

因此,MSYS2适用于需要在Windows上编译和运行Unix/Linux程序的场景,MinGW-w64适用于编译Windows本地应用程序的场景,Cygwin适用于需要最完整的Linux/Unix环境的场景。

下载C++环境

下载

下载安装编译器msys2
下载方式1:
参考网页:https://www.msys2.org/
在这里插入图片描述

在网页中点击下载链接,下载的文件如下
在这里插入图片描述
下载方式2:
也可以在msys2中央仓库下载,https://repo.msys2.org/distrib/
在这里插入图片描述

安装MSYS2

按步骤安装完成,
双击文件,开始安装

在这里插入图片描述

本文路径使用D:\Mingw\W64\

在这里插入图片描述

设置开始菜单

在这里插入图片描述

下一步安装

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

安装完成,运行向导

在这里插入图片描述

安装gcc

点击
在这里插入图片描述

更新msys2

pacman -Sy
在这里插入图片描述

安装gcc

pacman -Su gcc
在这里插入图片描述
出现"Proceed with installation? [Y/n]" 输入y回车就行。

同样的方法可以安装cmake,不赘述。

打开MSYS的终端并输入

pacman -S mingw-w64-ucrt-x86_64-gcc

确认输入 y ,安装完成之后安装 Mingw-w64 工具链,指令如下

pacman -S --needed base-devel mingw-w64-x86_64-toolchain
1

添加环境变量

使用以下步骤将 Mingw-w64 文件夹的路径添加到 Windows 环境变量:

打开Windows设置。
搜索系统 -> 关于 -> 高级系统设置 -> 环境变量
在系统变量中选择Path
选择新建并将 Mingw-w64 目标文件夹路径添加到系统路径。确切的路径取决于您安装的 Mingw-w64 版本及其安装位置。如果使用上述设置安装 Mingw-w64,请将其添加到路径:D:\Mingw\W64\mingw64\bin。或者选择编辑然后浏览找到该文件夹自动添加(注意不要直接浏览,容易替换原先的环境变量。先选择空行再浏览)
选择确定以保存更新的路径。需要重新打开任何控制台窗口才能使用新的 PATH 位置

可以打开 Mingw-w64 终端分别输入如下指令检查是否正确安装

gcc --version
g++ --version
gdb --version

总结

本文是C++系列博客,主要介绍了windows下的C++环境安装

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

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

相关文章

如何解决mac无法访问github

确定github能访问的ip地址 点击检测按钮,找到比较快的ip 修改hosts文件:打开终端,输入 open /etc/hosts 后回车,打开mac的文本编辑器 add github.com 140.82.121.4 github.com 199.232.69.194 github.global.ssl.fastly.net …

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第三节 栈与堆,值类型与引用类型

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第三节 栈与堆,值类型与引用类型 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工…

Java面试题及答案汇总来啦!快来领取

还有不到两个月就要过年了,过完年紧接着“金三银四”招聘热季就要到了,在过年期间只想着吃吃喝喝玩玩,这习是学不了一点。那就趁着过年前这段时间开始恶补Java面试题,实现弯道超车吧!小编整理出一份非常详细的Java面试题以及答案&…

如何去掉微博水印?用它一键去除三秒出图

微博是一款非常流行的社交媒体平台,许多人都在上面分享自己的生活点滴和心得体会。但是,有时候我们会发现,在上传图片时,微博会自动添加水印,这会影响到图片的美观度。那么,如何去掉微博水印呢?…

elasticsearch系列六:索引重建

概述 我们再起初创建索引的时候由于数据量、业务增长量都并不大,常常不需要搞那么多分片或者说某些字段的类型随着业务的变化,已经不太满足未来需求了,再或者由于集群上面索引分布不均匀导致节点直接容量差异较大等等这些情况,此时…

小型企业成为网络犯罪分子获取数据的目标

在过去十年的大部分时间里,网络犯罪的巨额资金来自针对大型组织的勒索软件攻击。这种威胁仍然存在。但犯罪分子可能会将注意力转向中小企业 (SMB)。这对消费者的影响将是巨大的。 将软件即服务 (SaaS) 技术用于核心业务功能继续将中小企业整合到全球供应链中。由于…

夜天之书 #92 全票通过?同侪社群无须整齐划一。

近几年,国内开源项目捐赠到 Apache 软件基金会(ASF)的案例很有一些。几乎每个在进入孵化器和从孵化器当中毕业时发通稿的项目,都会选择在标题中加入“全票通过”的字样。 诚然,大部分项目在 ASF 孵化器中茁壮成长&…

骨传导耳机的原理是什么?一文读懂骨传导耳机优缺点都有哪些!

一、骨传导耳机传声原理是什么 骨传导耳机以人体骨骼为传声介质,可以将声音转化为不同频率的震动,在不经过外耳道和鼓膜的情况下,通过震动使声音经过内耳道,直接传入大脑听觉神经,与传统耳机相比,可以节省许…

每日一题(LeetCode)----二叉树--二叉树的层平均值

每日一题(LeetCode)----二叉树–二叉树的层平均值 1.题目(637. 二叉树的层平均值) 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 1: 输入:root […

idea配置docker推送本地镜像到远程私有仓库

1,搭建远程Docker 私有仓库 Docker registry 1,搜索镜像 # 搜索相关镜像 docker search registry 2,拉取镜像并运行容器 #创建容器持久化目录 mkdir -p /opt/data/registry#拉取镜像并启动容器 docker run -d -p 5000:5000 -v /opt/data/regi…

Unity中URP下的添加雾效支持

文章目录 前言一、URP下Shader支持雾效的步骤1、添加雾效变体2、在Varying结构体中添加雾效因子3、在顶点着色器中,我们使用内置函数得到雾效因子4、在片元着色器中,把输出颜色 和 雾效因子混合输出 二、在Unity中打开雾效三、测试代码 前言 我们使用之…

DDR终端匹配电阻的长度多少合适?

上次我们对不加端接电阻和加端接电阻之后的仿真结果做了分析之后我们得出在DDR采用菊花链拓扑结构的时候是需要加端接电阻的,这次我们看看DDR末端的端接电阻距离最后一片DDR远一点效果好一些还是近一点效果好一些。 本次采用的案例依旧是我们上期的DDR3一拖八正反贴…

【赠书第14期】AI短视频制作一本通:文本生成视频+图片生成视频+视频生成视频

文章目录 前言 1 前期准备 2 拍摄与录制 3 后期编辑 4 技巧与注意事项 5 推荐图书 6 粉丝福利 前言 随着智能技术的迅猛发展,AI 短视频制作成为了一种新兴而创新的表达方式,广泛应用于社交媒体、广告营销、教育培训等领域。本文将介绍 AI 短视频…

最新版本Vue3的学习笔记-第一章

1. Vue3简介 2020年9月18日,Vue.js发布版3.0版本,代号:One Piece(n 经历了:4800次提交、40个RFC、600次PR、300贡献者 官方发版地址:Release v3.0.0 One Piece vuejs/core 截止2023年10月,最新…

32阵元 MVDR和DREC DOA估计波束方向图对比

32阵元 MVDR和DREC DOA估计波束方向图对比 一、原理 MVDR原理:https://zhuanlan.zhihu.com/p/457528114 DREC原理(无失真响应特征干扰相消器):http://radarst.ijournal.cn/html/2019/3/201903018.html 主要参数: 阵…

文件监控-IT安全管理软件

文件监控和IT安全管理软件是用于保护企业数据和网络安全的工具。这些工具可以帮助企业监控文件的变化,防止未经授权的访问和修改,并确保数据的安全性和完整性。 一、具有哪些功能 文件监控软件可以实时监控文件系统的活动,包括文件的创建、修…

Docker之网络配置

目录 1.网络概念 网络相关的有ip,子网掩码,网关,DNS,端口号 1.1 ip是什么? ip是唯一定位一台网上计算机 Ip地址的分类: IPV4: 4字节32位整数,并分成4段8位的二进制数,每8位之间用圆点隔开,每8位整数可以转换为一个0~255的十进制整数 【例…

JVM 常用知识和面试题

1. 什么是JVM内存结构? jvm将虚拟机分为5大区域,程序计数器、虚拟机栈、本地方法栈、java堆、方法区; 程序计数器:线程私有的,是一块很小的内存空间,作为当前线程的行号指示器,用于记录当前虚拟…

web前端开发JQuery轮播图,双向兼容手搭挡和自动挡

效果展示: html界面 展示: 轮播图及图片资源(百度网盘): http://链接:https://pan.baidu.com/s/1A3TLkcD08yaNMA4XcaMPCQ?pwd4332 提取码:4332 注意事项: 引用JQuery文件地址和图…

Hive讲课笔记:内部表与外部表

文章目录 一、导言二、内部表1.1 什么是内部表1.1.1 内部表的定义1.1.2 内部表的关键特性 1.2 创建与操作内部表1.2.1 创建并查看数据库1.2.2 在park数据库里创建student表1.2.3 在student表插入一条记录1.2.4 通过HDFS WebUI查看数据库与表 三、外部表2.1 什么是外部表2.2 创建…