五分钟配置 MinGW-W64 编译工具
编译器是一个诸如 C 语言撰写的源程序一步一步走向机器世界彼岸的桥梁。 Gnu 项目的 GCC 编译器是常用的编译器之一。儿在Windows 上也有 MinGW 这样可用的套件,可以让我们使用 GCC 来生成我们撰写的程序。但是 MinGW 项目发展缓慢,不支持 Windows 新特性,驱使我转换到了 MinGW-W64 上了。其实 MinGW-W64 也发源于 MinGW 项目。
要配置 MinGW-64 只需简单的三部即可完成。下面把我的步骤记录下来,共大家参考。
下载 -> 解压 -> 添加环境变量
MinGW-W64 的官方主页是: http://mingw-w64.org/。 可以在网站上获取文档、找到下载地址等。
下载可以前往 https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/ 来查找适合自己的版本来下载。
我选择下载的是 GCC 8.1.0 的 "i686-win32-sjlj" 这个版本的。
这里的 "i686" 是处理器架构。 "i686" 是我们通常说的 x86 或者 32 位, "X86_64" 是 "amd64" 或者我们经常说的 64位。这里要说的是,你选择什么架构,就只能生成对应架构运行的程序,所以我是 64 位的系统依然是选择的 "i686" 的版本。
"Win32" 是标准库的类型,除此还有 posix 可选。
儿最后的 "sjlj" 是异常调试模型,这么高深的我就不过多解释了。
下回来的是一个 ".7z" 的文件,我这里就用 7-Zip 来解压,并且把压缩包内的 "mingw32" 文件夹放到了 C 盘的根目录。
为了可以在 Cmd (命令提示符) 下直接可以使用 gcc 等工具,我们应该把 "mingw32" 文件夹下的 "bin" 目录加入环境变量。 在 Windows 10 上的路径是:
右击桌面上的 "此电脑” 图标或者直接按下 "Windows + Pause" 打开 “系统属性”,接着单机 "高级系统设置", 然后在新弹出来的对话框中点击 “环境变量”已打开 “环境变量” 设置界面;
选择 “用户的环境变量” 或者 “系统环境变量” 中的 “Path” 一项,然后点击对应的 “编辑” 按钮,具体选择哪一种变量编辑,主要是当前用户下可用还是所有用户下可用的区别。
在新弹出的对话框中填写你 MinGW-W64 下的 "bin" 文件夹的路径,我这里是 "C:\mingw32\bin",然后一路点击 “确定”。
经过上面的设置,你可以在 CMD (命令提示符) 下键入 "gcc -v" 查看到版本等信息。
一个简单的 Windows 32 应用程序的示例
我们可以敲一个简单的 Win32 应用程序来测试一下我们搭建的这个环境是不是可以用。你也可以把下面的代码保存成 ".c" 的 C 语言源代码文件,然后使用 "gcc -municode -mwindows 文件名.c" 来编译它。
/** Win32之一个信息框
* 或许是最简单的 Win32 应用程序了
* 编译套件: MinGW i686-8.1.0-release-win32-sjlj-rt_v6-rev0
* 时间: 21:39 2019/8/16
* 编译命令行: gcc -municode -mwindows *Win32_MessageBox.c
*/
#include <stdio.h>
#include <windows.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
{
MessageBox(NULL, TEXT("hello world"), TEXT("Message"), 0);
return 0;
}
好了,今天的文章就写道这里啦,感谢你的阅读。下次再见了哟。
参考资料
五分钟配置 MinGW-W64 编译工具的更多相关文章
- JDK 的配置和反编译工具的使用---------------Java知识点
初始Java 1995年5月,sun公司开发了一门新的编程语言------Java 詹姆斯.高斯林(Java之父),Java语言小巧安全具有可移植可跨平台性的优点. 开发java程序的步骤:编写 ,编 ...
- MinGW下载并配置gcc/g++编译环境
本文将讲解如何下载MinGW并配置gcc\g++编译环境 一.下载MinGW 在MinGW官网中下载“mingw-get-setup.exe” 官网传送门:http://www.mingw.org/ ...
- Eclipse反编译工具Jad及插件JadClipse配置
Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的.不过因为是控制台运行,所以用起来不太方便.不过幸好有一个eclipse的插件JadClipse ...
- Eclipse反编译工具Jad及插件JadClipse配置(转)
Eclipse反编译工具Jad及插件JadClipse配置 Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的.不过因为是控制台运行,所以用起来不 ...
- 如何在eclipse中配置反编译工具JadClipse
Q:为什么有必要在开发环境中配置反编译工具呢? A: 当运行引用了第三方jar包项目时,突然报出了jar包中的某个类的某一行出现异常.我们想看一下这个class文件的代码时,经常出现了如下图所示的场 ...
- 2: Eclipse反编译工具Jad及插件JadClipse配置
Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的.不过因为是控制台运行,所以用起来不太方便.不过幸好有一个eclipse的插件JadClipse ...
- Java反编译工具Jad及插件JadClipse配置教程
Jad是一个Java的一个反编译工具,和eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码. 下面介绍一下配置: 下载JadClipse,http: ...
- 五分钟搞定 HTTPS 配置,二哥手把手教
01.关于 FreeSSL.cn FreeSSL.cn 是一个免费提供 HTTPS 证书申请.HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,旨在推进 HTTPS 证书的普及与应用,简化证 ...
- Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作 (转)
大致流程: 1.安装Qt(源码版)以及其他必要的环境 2.编译/安装 3.配置 4.使用 ----------正文分割线---------- 1.安装Qt(源码版) 1.1 下载Qt(两个地址二选一即 ...
随机推荐
- count(*)这么慢,我该怎么办?
1)计算一个表有多少行数用什么命令? select count(*) from t 2)count(*)底层是怎样实现的? 在MYISAM中,是把这个总行数存到磁盘中去的,要的时候直接去读就行,特别快 ...
- 如何在 Spring Boot 中禁用 Actuator 端点安全性?
默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR 角色的用户才能访问它们.安全性是使用标准的 HttpServletRequest.isUserInRole 方法实施的. ...
- Chroot 特性 ?
3.2.0 版本后,添加了 Chroot 特性,该特性允许每个客户端为自己设置一个命名 空间.如果一个客户端设置了 Chroot,那么该客户端对服务器的任何操作,都将 会被限制在其自己的命名空间下. ...
- Spring容器 从XML 文件中读取bean的定义,并实例化bean?
解释Spring框架中bean的生命周期. Spring根据bean的定义填充所有的属性. 如果bean实现了BeanNameAware 接口,Spring 传递bean 的ID 到 setBeanN ...
- jQuery--表单的过滤
1.表单过滤器的介绍 :input 所有表单元素(<input>/<select>/<textarea>/<button>) :text 文本框< ...
- Mybaits 的优点?
1.基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任 何影响,SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理:提供 XML 标签,支持编写动态 SQL ...
- Memcache 与 Redis 的区别都有哪些?
1.存储方式 Memecache 把数据全部存在内存之中,断电后会挂掉,数据不能 超过内存大小. Redis 有部份存在硬盘上,这样能保证数据的持久性. 2.数据支持类型 Memcache 对数据类型 ...
- vmware克隆Centos虚拟机网卡无法启动问题
快速处理办法: cat /etc/sysconfig/network-scripts/ifcfg-eth0 sed -i '/UUID/d' /etc/sysconfig/network-script ...
- 关于XML文件
关于xml文件没有提示(eclipse) 点我
- 学习k8s(三)
一.Kubernetes核心概念 1.Kubernetes介绍 Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展.如果你曾经用过Docker容器技术部署 ...