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++环境安装

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FingerprintService启动-Android13

FingerprintService启动-Android13 1、指纹服务启动1.1 rc启动Binder对接指纹厂商TA库1.2 FingerprintService启动1.2.1 SystemServer启动FingerprintService1.2.2 注册Binder服务fingerprint 2、获取底层信息2.1 AIDL 对接TA中获取2.2 指纹类型判断 android13-release 1、指纹…

PythonStudio=vb7国人写的python可视化窗体设计器IDE,可以替代pyqt designer等设计器了

【免费】PythonStudio-1.1.5-x86最新版国人开发的python界面ide,可以制作窗体资源-CSDN文库https://download.csdn.net/download/xiaoyao961/88688447 【免费】PythonStudio-1.1.5-x64-Setup.exe国人开发的python界面ide,可以制作窗体资源-CSDN文库https…

C# WPF上位机开发(以始为终,寻找真实的上位机需求)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 c# wpf、qt、mfc这些上位机的需求是真实存在的,在现实中有很多应用的地方,这一点大家都很清楚。而程序员本身呢&#xff0c…

Linux:/proc/sys/vm/目录各文件详解

目录 前言一、/proc/sys/vm/目录各文件二、相关功能的API函数 前言 /proc/sys/vm/ 目录是 Linux 系统中的一个特殊目录,它包含了与虚拟内存子系统相关的系统内核参数。这些参数可以用来配置系统的虚拟内存管理策略,包括内存分配、页面置换、内存压缩、NU…

AI提示词入门教程

AI提示词的基本原则与技巧 文章目录 AI提示词的基本原则与技巧前言原则1: 尽可能保证下达的指令“清晰、没有歧义”使用分隔符清楚地指示输入地不同部分要求结构化地输出让模型检查是否满足条件少样本提示 原则2:给AI思考的时间,以及完成任务…

前端八股文(CSS篇)二

目录 1.css中可继承与不可继承属性有哪些 2.link和import的区别 3.transition和animation的区别 4.margin和padding的使用场景 5.::before和:after的双冒号和单冒号有什么区别? 6.display:inline-block什么时候会显示间隙 7…

在MySQL中使用VARCHAR字段进行日期筛选

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

从仿写持久层框架到MyBatis核心源码阅读

接上篇手写持久层框架:https://blog.csdn.net/liwenyang1992/article/details/134884703 MyBatis源码 MyBatis架构原理&主要组件 MyBatis架构设计 MyBatis架构四层作用是什么呢? API接口层:提供API,增加、删除、修改、查询…

听GPT 讲Rust源代码--library/panic_unwind

File: rust/library/panic_unwind/src/seh.rs 在Rust源代码中,rust/library/panic_unwind/src/seh.rs这个文件的作用是实现Windows操作系统上的SEH(Structured Exception Handling)异常处理机制。 SEH是Windows上的一种异常处理机制&#xff…

计算机网络【HTTP 灵魂拷问?】

1. HTTP 报文结构是怎样的? 对于 TCP 而言,在传输的时候分为两个部分:TCP头和数据部分。 而 HTTP 类似,也是header body的结构,具体而言: 起始行 头部 空行 实体由于 http 请求报文和响应报文是有一定区别,因此…

FPGA - 240102 - FPGA期末速成

TAG - F P G A 、期末、速成 FPGA、期末、速成 FPGA、期末、速成 // – 习题1 – //CPLD(Complex Programmable Logic Device)是 Complex PLD 的简称,一种较 PLD 为复杂的逻辑元件。CPLD 逻辑资源多寄存器少,FPGA 逻辑弱而寄存器…

Zookeeper-Zookeeper选举源码

看源码方法: 1、先使用:先看官方文档快速掌握框架的基本使用 2、抓主线:找一个demo入手,顺藤摸瓜快速静态看一遍框架的主线源码,画出源码主流程图,切勿一开始就陷入源码的细枝末节,否则会把自…

Docker:部署若依前后端分离版

Docker:部署若依前后端分离版 1. 停止天翼云上的原来跑的若依项目2. 停止腾讯云上的若依项目3. 使用Docker部署3.1 天翼云数据库&Redis3.1.1 部署数据库3.1.2 部署Redis数据库3.1.1 部署Nginx(这里被天翼云坑了换的腾讯云运行nginx) 3.2 腾讯云部署后端&前端…

C#编程-使用条件构造

使用条件构造 作判定是人的基本能力。判定也是可收编进程序。这有助于确定程序执行指令的顺序。 您可用条件构造来控制程序的流程。条件构造允许您基于被求职的表达式的结果来执行选定语句。 可以包含在C#程序中的各种条件构造是: if…else 构造switch…case 构造if…else构…

多线程学习笔记(二)

1 .如何实现子线程先执行,主线程再执行? 启动子线程后,立即调用该线程的join()方法,则主线程必须等待子线程执行完成后再执行。 ​ 扩展阅读 ​ Thread类提供了让一个线程等待另一个线程完成的方法——join()方法。当在某个程序…

71内网安全-域横向网络传输应用层隧道技术

必备知识点; 代理和隧道技术的区别? 代理主要解决的是网络访问问题,隧道是对过滤的绕过, 隧道技术是为了解决什么 解决被防火墙一些设备,ids(入侵检测系统)进行拦截的东西进行突破&#xff0…

大华主动注册协议介绍

一、大华主动注册协议介绍 前面写了一篇文章,介绍一些设备通过大华主动注册协议接入到AS-V1000的文章,很多问我关于大华主动注册协议的相关知识。 由于大华主动注册协议是一种私有协议,通常不对外公开详细的协议规范和技术细节。因此…

UDS诊断(ISO14229-1) 27服务

文章目录 功能简介应用场景安全解锁基本原理请求和响应1、请求2、子功能3、肯定响应4、否定响应 注意报文示例UDS中常用 NRC参考 功能简介 27服务,即 SecurityAccess(安全访问)服务,安全理念采用的是种子与密钥式关系。 应用场景…

VSCode + vite + vue3断点调试配置

没想到这个配置我搞了一上午,网上很多的配置方案都没有效果。总算搞定了,特此记录一下。 首先需要在.vscode文件夹下面创建launch.json配置文件。然后输入如下配置: {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。//…

萨姆·奥尔特曼的预言

Sam Altman(萨姆奥尔特曼)是 OpenAI 的首席执行官,这家初创公司开发了众所周知的 ChatGPT。2023年11月,他突然被董事会解雇,并短暂调往微软。在 OpenAI 的每个人都威胁要辞职后,他又回来了。 新的商业模式…