C/C++配置使用windows msys2中的gcc/g++编译器

2023-11-16

介绍

比较常见的,可以在Windows上安装各种工具链来编译C和C ++应用程序,如果是专门为Windows开发的,那是推荐Microsoft 免费提供的Visual Studio Community,出色的IDE工具。

对于那些需要或喜欢跨平台GNU工具的人,可以使用MSYS2的gcc、make、cmake工具,接下来介绍如何使用MSYS2安装gcc。

在Windows中使用Code::Blocks - The IDE with all the features you need, having a consistent look, feel and operation across platforms.。

Qt Creator是mingw工具链附带的另一个免费IDE。One framework. One codebase. Any platform.

如果拥有一台Windows,并且只是想学习和使用GNU,建议通过Microsoft Store在Windows上安装Ubuntu或Suse。这将在Windows中提供一个Linux环境;或者可以在VirtualBox或VMWare Player虚拟机中安装像Ubuntu。

安装和使用msys2

从http://www.msys2.org/下载MSYS2 。下载.exe文件然后按照网站上的安装说明进行操作。安装后,导航到安装目录,然后运行msys2.exe。一般来说,默认位置为C:\ msys64。

MSYS2使用Arch Linux发行版使用的pacman软件包管理器。初次安装后,最好更新所有软件包。使用以下命令更新所有内容:

> pacman -Syu

如果更新太慢,可以配置msys2中pacman的镜像地址,三个文件mirrorlist.mingw32、mirrorlist.msys、mirrorlist.mingw64

# C:\msys64\etc\pacman.d\mirrorlist.mingw32
##
## 32-bit Mingw-w64 repository mirrorlist
##

## Primary
##中国科学技术大学开源软件镜像
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686
##北京理工大学镜像
Server = http://mirror.bit.edu.cn/msys2/mingw/i686
##日本北陆先端科学技术大学院大学 sourceforge 镜像
Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/i686
##The UK Mirror Service Sourceforge mirror
Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/i686
## Primary
Server = ftp://148.251.42.38/MINGW/i686
## Sourceforge.net
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686

## msys2.org
Server = http://repo.msys2.org/mingw/i686/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/i686/
Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/i686/
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/i686/

# C:\msys64\etc\pacman.d\mirrorlist.msys
##
## MSYS2 repository mirrorlist
##

## Primary
##中国科学技术大学开源软件镜像
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch
##北京理工大学镜像
Server = http://mirror.bit.edu.cn/msys2/mingw/$arch
##日本北陆先端科学技术大学院大学 sourceforge 镜像
Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/$arch
##The UK Mirror Service Sourceforge mirror
Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MSYS2/$arch
## Primary
Server = ftp://148.251.42.38/MSYS2/$arch
## Sourceforge.net
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch

## msys2.org
Server = http://repo.msys2.org/msys/$arch/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/$arch/
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
Server = https://mirror.yandex.ru/mirrors/msys2/msys/$arch/
# C:\msys64\etc\pacman.d\mirrorlist.mingw64
##
## 64-bit Mingw-w64 repository mirrorlist
##

## Primary
##中国科学技术大学开源软件镜像
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64
##北京理工大学镜像
Server = http://mirror.bit.edu.cn/msys2/mingw/x86_64
##日本北陆先端科学技术大学院大学 sourceforge 镜像
Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
##The UK Mirror Service Sourceforge mirror
Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/x86_64
## Primary
Server = ftp://148.251.42.38/MINGW/x86_64
## Sourceforge.net
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64

## msys2.org
Server = http://repo.msys2.org/mingw/x86_64/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64/
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/x86_64/

在这里插入图片描述

使用MSYS2安装gcc

在MSYS2 bash shell中,再次使用pacman安装 build toolchain 和 compilers。运行以下命令以安装mingw-w64-x86_64-toolchain。

# Install make, autoconf, etc to C:\msys64\usr\bin
> pacman -S base-devel gcc vim cmake

在这里插入图片描述

注意,这里直接加上了vim和cmake。安装完这些软件包之后,在MSYS2 shell中将可以使用gcc和其他工具。如果要在命令提示符下或在MSYS2 Shell之外使用它们,则可以在C:\ msys64 \ usr \ bin目录中找到它们。

> pacman -S base-devel gcc vim cmake
:: There are 56 members in group base-devel:
:: Repository msys
   1) asciidoc  2) autoconf  3) autoconf2.13  4) autogen  5) automake-wrapper
   6) automake1.10  7) automake1.11  8) automake1.12  9) automake1.13
   10) automake1.14  11) automake1.15  12) automake1.16  13) automake1.6
   14) automake1.7  15) automake1.8  16) automake1.9  17) bison  18) diffstat
   19) diffutils  20) dos2unix  21) file  22) flex  23) gawk  24) gdb  25) gettext
   26) gettext-devel  27) gperf  28) grep  29) groff  30) help2man  31) intltool
   32) lemon  33) libtool  34) libunrar  35) libunrar-devel  36) m4  37) make
   38) man-db  39) pacman  40) pactoys-git  41) patch  42) patchutils  43) perl
   44) pkg-config  45) pkgfile  46) quilt  47) rcs  48) scons  49) sed  50) swig
   51) texinfo  52) texinfo-tex  53) ttyrec  54) unrar  55) wget  56) xmlto

安装完成之后

> gcc
gcc: fatal error: no input files
compilation terminated.

> g++
g++: fatal error: no input files
compilation terminated.

> gdb
GNU gdb (GDB) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-msys".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb)

将可执行文件添加到Windows PATH

此外,C:\msys64\usr\bin目录中还有许多其他exe,如果将bin目录添加到PATH时,注意看一下。

如果要访问Windows命令提示符中的所有内容,则将bin目录添加到Windows PATH环境变量中。请记住,这会将很多可执行文件添加到您的路径中,这可能会与其他应用程序发生冲突。

一般来说是这两个路径:

C:\msys64\mingw64\bin
C:\msys64\usr\bin

MSYS vs Mingw64

有些东西仅在msys/repo中可用,例如vim和git,并且仅在\usr\bin\中可用。诸如gcc之类的东西在msys \,mingw32\和mingw64\repos中可用,并且有可能安装在\usr\bin\和\mingw64\bin\中。

在这里,必须注意如何设置PATH环境变量。

如果已经添加\usr\bin\使用vim或git的话,再将\mingw64\bin\也添加到PATH中,则可能会与某些内容发生冲突。

如果只希望build toolchain和compiler,请直接使用mingw64软件包,仅将\mingw64\bin目录添加到PATH中。

另外,mingw64通常具有更多可用于安装的库,这些库在一般的msys存储库中不可用(例如SDL,exif,freeglut),具体可以看pacman的用法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++配置使用windows msys2中的gcc/g++编译器 的相关文章

  • java获取两个时间之间的所有日期、月份、年份,返回列表

    需求描述 输入开始时间和结束时间 获取时间范围内的所有日期 月份 年份 输入可以为 yyyy MM dd HH mm ss 或者 yyyy MM dd 一 输入开始时间和结束时间 返回时间范围内中的所有日期列表 传入两个时间范围 返回这两个
  • Javascript组件化开发设计思想

    一 引言 项目中经常用web弹层组件 layer 其常见的代码如下 使用的时候很方便 弹窗的宽高 内容 标题 关闭按钮等弹窗的状态我们都可以通过配置参数配置 layer弹层组件用同一套代码来满足不同的弹窗层表现的需求 这便是组件开发的强大之
  • 服务器优化

    Windows Registry Editor Version 5 00 HKEY LOCAL MACHINE SYSTEM CurrentControlSet Services Tcpip Parameters 关闭无效网关的检查 当服务
  • 网站搭建学习 ubuntu(20.04) 无法使用ifconfig命令-解决办法

    想在新装好的ubuntu系统上部署django 一开始就遇到了问题 使用ifconfig命令时报错 于是按照提示安装net tools sudo apt install net tools 还是有报错 总之先按照系统提示来 用apt get
  • 如何终止一个无限循环线程和 程序退出时销毁线程

    http zhidao baidu com question 299079849 html android 启动了一个子线程 这个子线程是一个死循环 不成的打印 Hello 现在要实现点击一个Button 让这个子线程终止 用什么方法啊 s
  • 单相逆变器第四课、F28027最小系统绘画

    今天我们说的是F28027最小系统的绘画 其实我暂时还没有规划后面要用到什么引脚 所以我很任性的把所有GPIO引脚都接出去了 呵呵 先给大家上一个整体的图 看着图片是不是比较小 呵呵 没办法 截图最大的了 我晚点会把原理图和PCB上传到下载
  • VMware15中安装Linux详细教程

    VMware15中安装Linux详细教程 一 搭建VMware环境 1 打开链接 https www vmware com cn html 选择适合自己电脑系统的版本进行下载 2 下载完成后点击文件进行安装 安装界面如图 注 1 安装目录尽
  • 信息安全产品认证

    文章目录 一 引言 二 网络关键设备和网络安全专用产品安全认证证书 2 1 背景 2 2 产品目录 2 3 认证依据标准 2 4 认证机构 2 5 商密产品检测认证目录 与 网络关键设备和网络安全专用产品目录 的关系 三 中国国家信息安全产
  • 20个常见的Java错误以及规避方法

    原文 50 Common Java Errors and How to Avoid Them Part 1 作者 Angela Stringfellow 翻译 雁惊寒 译者注 本文介绍了20个常见的Java编译器错误 每种错误都包含了代码片
  • MKP勒索病毒:了解最新变种mkp,以及如何保护您的数据

    导言 在数字化时代 mkp 勒索病毒成为了网络安全领域的一大威胁 它采用高级加密技术 将您的数据文件锁定 要求支付赎金以解锁 本文将详细介绍 mkp 勒索病毒的工作原理 如何恢复被它加密的数据文件 以及如何采取预防措施来降低受攻击的风险 如
  • lambdaQuery用法

    lambdaQuery用法 LambdaQueryWrapper
  • pandas DataFrame行或列的删除方法

    pandas DataFrame的增删查改总结系列文章 pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pandas DataFrame的修改方法 此文我
  • uniapp之微信小程序开发教程及如何合理使用WebSocket(实时监听)+workman聊天系统+linux系统配置阿里云端口

    添加链接描述 添加链接描述 thinphp6 1 workerman文档 添加链接描述 https www kancloud cn manual thinkphp6 0 1147857 workerman手册 https www worke
  • 软件的最低测试方法

    前言 1 1 引言 对于大部分软件系统 如何测试及有效的测试 是一个很头痛的问题 在软件工程上 测试是软件工程中极其重要的一部分 但在具体的实际情况上 无论是时间 人手及资源的调配等原因 使国内大部分软件公司没有进行过理论上的完整的测试 本
  • JAVA变量与数据类型

    人生不如意之事十有八九 在最好的年纪要努力充实自己 莫等空悲切白了少年头 而是要及时当勉励 岁月不待人 一 java变量 变量概述 1 内存中存储的一个存储区域 2 该存储区域内的数据在同一类型范围内不断变化 3 变量是程序中最基本的存储单
  • 老虎证券美股策略——将动量策略日频调仓改成月频

    最近策略频繁回撤 跑不赢标普500指数 所以对策略简单修改 以待后效 新加入的代码 def get if trade day infile open countday dat r incontent infile read infile c
  • Linux系统中负载较高问题排查思路与解决方法

    Load 就是对计算机干活多少的度量 Load Average 就是一段时间 1分钟 5分钟 15分钟 内平均Load linux服务器出现高负载的情况下 一般都有一些具体的症状 比如cpu 内存等被耗尽 磁盘IO或者网络等出现问题 下面通
  • CentOS7下安装LNMP以及phpMyAdmin

    两种安装 第一种 下载 可以到官网找 版本 https www phpmyadmin net downloads cd 到你要下载的位置 wget https files phpmyadmin net phpMyAdmin 4 4 12 p
  • Maven中pom文件内scope标签中import、parent 、dependencies、dependencyManagement详解

    首先介绍parent 如果父项目中有这些依赖
  • linux-sed命令

    目录 1 linux shell sed获取某一段字符串 2 linux shell shell脚本中 sed n取出某一行赋给一个变量 3 linux shell sed查询某一行 1 linux shell sed获取某一段字符串 如果

随机推荐

  • 网络层(四)

    网络层 我们说过 网络层主要讲的就是ip编址和路由选择算法 更准确的说 应该是网际IP协议 网际IP协议主要说明了各个主机和服务器的ip编址规则 了解IP编址前 我们需要知道IP数据报 IP数据报在网络层中传输 我们看一下IP数据报的结构
  • STM32F103ZET6【标准库函数开发】------PB3,PB4当做普通IO口,重定义

    一 如题 我在设计原理图的时候将PB3和PB4当做了普通IO口 结果按照一般配置的方法操作后 PB3 PB4并没有输出自己想要的信号 配置如下 void MOTOR GPIO Init void 初始化 GPIO InitTypeDef G
  • 人社练兵比武怎样挣积分 python 源码在线答题源码

    可以自动答题积分 不明白如何用的可以联系我 下面2个函数是学练习的 需要用的库为selenium time re pickle 题库需要收集 def dan 单选或多选 j browser find element by xpath id
  • java绘制(可视化)树结构图

    以JPanel组件为画板 继承JPanel类并重写paint Graphics g 函数 在函数中使用画笔g绘制树结构图 实例代码 3个java源文件 Main java DrawNode java DrawTree java 1 Main
  • 周订单量趋势

    周订单量趋势 PreAuthorize hasAuthority admin statistics home chart order week ApiOperation value 周订单量趋势 RequestMapping value c
  • 《Perl语言入门》读书笔记(六)哈希

    1 哈希特点 哈希是一种数据结构 与数组相同点 能容纳任意多的值 而哈希的检索方式与数组不同 数组是以数字下标检索 而哈希中的值 value 以唯一的名字 key 检索 key value一一对应 乱序排列 类似一桶数据 由于检索方式不同
  • 程序记录(一)VGG16猫狗分类

    import torch from torchvision import datasets models transforms import os from torch utils data import DataLoader from t
  • RANSAC鲁棒参数估计

    转自 http blog csdn net zhanglei8893 archive 2010 01 23 5249470 aspx RANSAC 是 RANdom SAmple Consensus 的缩写 该算法是用于从一组观测数据中估计
  • U-Boot Passing Kernel Arguments

    本文转载至 http www denx de wiki view DULG LinuxKernelArgs In nearly all cases you will want to pass additional information t
  • ply格式文件导出

    ply格式导出代码片段 注意vertex 和tri都是 N 3 格式 三角形编号从1开始 def dump to ply vertex tri wfp index in tri should begin from 1 vertex in s
  • 【Vue】Vue基础自用笔记&Day04_①Vue组件②Vue插槽

    Vue基础 Day04 1 Vue组件 component 定义全局组件 定义私有组件 组件中数据和方法的调用 组件动画 父组件传值子组件 子组件传值父组件 2 Vue插槽 slot 如果出现具名插槽没有效果 但是也没有报错 极有可能是Vu
  • C语言——IIC协议概述+PCF8591

    IIC协议 SCL必须由主机发送 在SCL 1 高电平 时 SDA下跳则 判罚 为 起始信号 SDA上跳则 判罚 为 停止信号P 每个字节后应该由对方回送一个应答信号ACK做为对方在线的标志 非应答信号一般在所有字节的最后一个字节后 一般要
  • 【RabbitMQ教程】springboot整合rabbitmq(topic模式)

    下面还是模拟注册服务当用户注册成功后 向短信和邮件服务推送消息的场景 搭建SpringBoot环境 创建两个工程 mq rabbitmq producer和mq rabbitmq consumer 分别配置1 2 3 第三步本例消费者用注解
  • 如何利用FPGA生成SPWM调制信号

    如何利用FPGA生成SPWM调制信号 实验目标 稍微说一下原理 SPWM即正弦波宽度脉冲调制 冲量等效原理 双极性的的SPWM信号 具体步骤 1 用matlab生成三角波和正弦波的coe文件 2 调用ROM的ip读取coe文件 3 调用pl
  • IDEA使用小技巧

    一 添加javadoc注释 在方法声明前面输入 再按回车 就会自动生成 二 自动生成setter和getter方法 首先创建出你的实体类 或者准备好你要生成getter和setter方法的属性 然后再空白处点击右键 会出现这个界面 然后点G
  • 克鲁斯卡尔算法小结(使用查并集)

    克鲁斯卡尔算法 最小生成树 1 基本思想 先构造一个只含 n 个顶点 而边集为空的子图 把子图中各个顶点看成各棵树上的根结点 之后 从网的边集 E 中选取一条权值最小的边 若该条边的两个顶点分属不同的树 则将其加入子图 即把两棵树合成一棵树
  • Python脚本的简单编写(if语句,逻辑运算符,for循环,游戏的编写)

    1 利用python求平均成绩 gt gt gt gt gt gt gt gt 题目要求 输入学生姓名 依次输入学生的三门科目成绩 计算该学生的平均成绩 并打印 平均成绩保留一位小数 计算该学生语文成绩占总成绩的百分比 并打印 gt gt
  • 解决CHM文件打开无法显示网页的问题

    解决CHM文件打开无法显示网页的问题 chm的设计者的初衷是用来做帮助文档 其本质是一堆html网页文件的组合 后来有了专门的编 译器 反编译器 人们发现chm这东西具有的html的特性 使其用来做电子书实在是又好又方便 连html里面的脚
  • 使用config-overrides.js修改react项目的大包路径的正确方式

    create react app创建之后 默认的打包路径为build文件夹 如果想要更改 不使用yarn eject暴露配置项的琴况下 可以使用config overrides js修改打包的路径 代码如下 const path requi
  • C/C++配置使用windows msys2中的gcc/g++编译器

    介绍 比较常见的 可以在Windows上安装各种工具链来编译C和C 应用程序 如果是专门为Windows开发的 那是推荐Microsoft 免费提供的Visual Studio Community 出色的IDE工具 对于那些需要或喜欢跨平台