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

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

在这里插入图片描述

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

参考

Windows搭建C++编程环境(VSCode+Mingw-w64)
C++编译器有哪些

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 的文档和资源,以确保正确理解和使用命令的特定行为和选项。

下载C++环境

下载安装编译器Mingw-w64

参考网页:https://www.msys2.org/
在网页中点击下载链接
按步骤安装完成,本文路径使用D:\Mingw\W64
打开MSYS的终端并输入

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

1

确认输入 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://www.hqwc.cn/news/305450.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

How to Develop Word Embeddings in Python with Gensim

https://machinelearningmastery.com/develop-word-embeddings-python-gensim/ 本教程分为 6 个部分;他们是: 词嵌入 Gensim 库 开发 Word2Vec 嵌入 可视化单词嵌入 加载 Google 的 Word2Vec 嵌入 加载斯坦福大学的 GloVe 嵌入 词嵌入 单词嵌入是一种提供单词的…

YOLOv8算法优化:解决YOLOv8无法打印计算量(GFLOPs)的问题点

💡💡💡本文内容:解决YOLOv8无法打印计算量的问题点 💡💡💡本文提供:1)训练阶段自动打印计算量;2)提供离线打印计算量的代码; 1.计算量介绍 FLOPS:注意S是大写,是 “每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用…

SpringBoot多线程与任务调度总结

一、前言 多线程与任务调度是java开发中必须掌握的技能,在springBoot的开发中,多线程和任务调度变得越来越简单。实现方式可以通过实现ApplicationRunner接口,重新run的方法实现多线程。任务调度则可以使用Scheduled注解 二、使用示例 Slf…

12.28网络流,残留网络,增广路,最大流最小割定理

网络流 概念 是指在一个每条边都有容量的有向图分配流,使一条边的流量不会超过它的容量。通常在运筹学中,有向图称为网络。顶点称为节点而边称为弧。一道流必须匹配一个结点的进出的流量相同的限制,除非这是一个源点──有较多向外的流&…

SAP VA01 创建带wbs号的销售订单包 CJ067的错误

接口错误提示如下 SAP官方 CJ067 124177 - VA01: CJ067 during WBS acct assgmt with a different business area S4的core 刚好能用上 实施 这个note后成功

一个注解实现分布式锁

1、原始写法 我们平常使用redisson的分布式锁是怎么做的? 是不是基本都用的这个模板,既然是模板,那为何不把他抽出来呢? // 尝试加锁,最多等待100秒,上锁以后10秒自动解锁 boolean res lock.tryLock(10…

2023-12-23 组合总和 III和电话号码的字母组合

216. 组合总和 III 思路:使用回溯三部曲!① 确认需要传入的参数以及返回值 ② 回溯的终止条件 ③ 单层搜索的逻辑!这道题易错点在于单层的逻辑上的遍历起始位置以及回溯回退步骤里要执行的内容! class Solution:def combinationSu…

Redis 是如何执行的?

文章目录 命令执行流程步骤一:用户输入一条命令步骤二:客户端先将命令转换成 Redis 协议,然后再通过 socket 连接发送给服务器端步骤三:服务器端接收到命令步骤四:执行前准备步骤五:执行最终命令&#xff0…

docker学习(二十一、network使用示例container、自定义)

文章目录 一、container应用示例1.需要共用同一个端口的服务,不适用container方式2.可用示例3.停掉共享源的容器,其他容器只有本地回环lo地址 总结 二、自定义网络应用示例默认bridge,容器间ip通信默认bridge,容器间服务名不通 自…

关于设计模式、Java基础面试题

前言 之前为了准备面试,收集整理了一些面试题。 本篇文章更新时间2023年12月27日。 最新的内容可以看我的原文:https://www.yuque.com/wfzx/ninzck/cbf0cxkrr6s1kniv 设计模式 单例共有几种写法? 细分起来就有9种:懒汉&#x…

常见算法(java版)

冒泡排序 每次从数组中找出最大值放在数组的后面去。 关键步骤 确定总共需要做几轮: 数组的长度-1。 每轮比较几次:数组的长度 - 第i轮。 当前位置大于后一个位置则交换数据。 选择排序 每轮选择当前位置,开始找出后面的较小值与该位置交换。 关键…

Keras多分类鸢尾花DEMO

完整的一个小demo: pandas1.2.4 numpy1.19.2 python3.9.2 import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import DataFrame from scipy.io import loadmat from sklearn.model_selection import train_test_split impor…