Windows 7下使用GNU工具编译C/C++程序的环境搭建
来源:互联网 发布:简明python教程 mobi 编辑:程序博客网 时间:2024/05/30 23:48
本文旨在介绍在Windows下搭建支持C/C++编码的开发环境。
1 概述
MSYS2
是Windows下的类Unix命令行运行环境。它提供了pacman
包管理器,用pacman
可以方便你安装其它程序包或者工具。MINGW32
和MINGW64
包含GNU编译工具集合,可以用它编译C/C++, Fortran,和其它源代码。它们的区别之处就是,分别是32位和64位系统下的版本。它们编译的代码,即使没有MINGW32
,MINGW64
或者MSYS2
提供的运行时库,也可以在Windows下运行。GCC
既可以被MSYS2
也可以被Window原生CMD
命令调用。我乐意选择MSYS2
,是因为它建立的环境,提供了包管理器,可以方便安装其它编码工具(例如,autoconf
和automake
)。 当然了,MINGW32
和MINGW64
也可以单独安装,即使没有MSYS2
。但是,我还是强烈建议使用MSYS2
安装。
2 安装 MSYS2
- 确保系统上没有mingw 或 msys,否则,请卸载它们;
- 运行MSYS2 installer,或者使用 sourceforge上的 MSYS2
installer(根据自己系统选择对应的版本); - 安装完成后,请务必不要按照官网给出的步骤,避免产生以下错误。
错误:GPGME error: Invalid crypto engine错误:GPGME error: Invalid crypto engine错误:GPGME error: Invalid crypto engine错误:「mingw32」数据库不正确 (数据库不正确或损毁 (PGP 签名))错误:「mingw64」数据库不正确 (数据库不正确或损毁 (PGP 签名))错误:「msys」数据库不正确 (数据库不正确或损毁 (PGP 签名))
- 按照 C:\msys64\etc\pacman.conf 第45至47行的描述:
# NOTE: You must run 'pacman-key --init' before first using pacman; the local# keyring can then be populated with the keys of all official Arch Linux# packagers with 'pacman-key --populate archlinux'.
- 你必须先执行命令
pacman-key --init
- 接着,换掉 C:\msys64\etc\pacman.d\ 的 mirrorlist.mingw32,
mirrorlist.mingw64 和 mirrorlist.msys 里的默认源(这里,C:\msys64要对应于你安装的目录位置),改为以下源:
## 32-bit Mingw-w64 repository mirrorlistServer = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/Server = https://mirrors.ustc.edu.cn/msys2/mingw/i686/Server = https://mirrors.xjtu.edu.cn/msys2/mingw/i686/
## 64-bit Mingw-w64 repository mirrorlistServer = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/Server = https://mirrors.ustc.edu.cn/msys2/mingw/x86_64/Server = https://mirrors.xjtu.edu.cn/msys2/mingw/x86_64/
## MSYS2 repository mirrorlistServer = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$archServer = https://mirrors.ustc.edu.cn/msys2/REPOS/MSYS2/$archServer = https://mirrors.xjtu.edu.cn/msys2/msys/$arch
- 然后才能下命令来同步源,并更新
pacman -Syuu
- 接着,你就可以愉快地使用了。
pacman -S man gcc base-devel git mingw-w64-i686-toolchain tar perl make openssl
至于上面签名问题的原因,在archlinux网站上的一篇帖子中《pacman 出了一些问题,error如下》分析一下原因,但是我还没有考证。待考证后再补充。 帖子内容如下:
类似问题,我以前也是隔几天就可能遇上。尝试过换用不同的源发现也不能降低问题出现的几率,就怀疑和ISP的http劫持有关。解决方法是 /var/lib/pacman/sync 下的所有文件,添加支持https的源,再执行 pacman -Syu ,进行arch官方文件更新时总算没再遇过这样的问题,可惜archlinuxcn的源不支持https。官方镜像里支持https的源,可以在下面链接里找到:https://www.archlinux.org/mirrors/status/
3 安装MINGW32
/MINGW64
- 如果你安装的是64位
msys2
,那么执行下列命令:
> pacman -S base-devel mingw-w64-x86_64-toolchain
- 如果你安装的是32位
msys2
,那么执行下列命令:
> pacman -S base-devel mingw-w64-i686-toolchain
- 验证
gcc
:
$ gcc --versiongcc.exe (Rev2, Built by MSYS2 project) 6.3.0Copyright (C) 2016 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
4 环境变量的设置
为了方便,一般我们会把gcc
所在的路径加入系统的环境变量,这样就可以直接使用gcc
命令而不用绝对路径。
右键计算机
->属性
->高级系统设置
->环境变量
。然后,将C:\msys64\mingw64\bin
添加到path
变量中。
确定以后 就可以在任意目录下直接使用gcc
命令了。可以在任意目录打开cmd
窗口,输入gcc
查看环境变量是否设置成功。如果仍然提示不是内部或外部命令,说明环境变量设置失败。
参考文章:
MinGW coding under Windows (C, C++, OpenMP, MPI)
1 0
- Windows 7下使用GNU工具编译C/C++程序的环境搭建
- objective-c : windows下搭建环境并编译自己的第一个objective-c程序
- windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- windows 下 Objective C 编译环境搭建
- Windows 环境下 C 程序的编译配置
- 使用GNU make 编译C程序
- Windows下搭建GNUstep环境以及编译运行Objective-C
- Windows下编译objective-C (IOS开发,IOS环境搭建)
- 在Windows下使用CMake+MinGW搭建C/C++编译环境
- 如何在GNU Emacs环境下编译并运行C/C++程序?
- 【GNU】WINDOWS平台之Objective-C开发(环境搭建)
- windows环境下编译运行C语言程序(…
- 在 windows 环境下编译 Objective-C 程序
- 在Windows中使用Cygwin环境下的gcc编译器编译【电脑教程网】Informix ESQ/C程序
- windows下使用Eclipse+CDT搭建C/C++程序开发环境
- windows下使用IntelliJ IDEA的erlang编译环境搭建(含rebar工具)
- Windows环境下使用cmd面板手动编译c/c++程序
- 【C语言】编程工具--GNU的使用
- nginx安装及配置虚拟主机
- linux编程之网络编程错误处理
- 实现RestFul风格的delete和Put方法的注意点
- CentOs 安装maven3.0.5
- linux 搭建ss 服务
- Windows 7下使用GNU工具编译C/C++程序的环境搭建
- 新Java中的时间精度
- iOS
- Android studio jni开发出错点
- 技术栈--给自己保存用
- 使用ffmpeg、x264库强制编出关键帧(I帧)
- tomcat 配置物理路径(配置图片虚拟路径)
- Git的安装与使用
- 1255 字典序最小的子序列 (水题+技巧)