Windows 环境下使用 GCC
MinGw 是 Minimal GNU on Windows 的缩写,允许在 GNU/Linux 和 Windows 平台生成本地的 Windows 程序而不需要第三方运行时库。本文主要介绍 MinGw 的安装和使用。
(一)安装
- 1.下载 min-gw 安装程序,链接为:http://sourceforge.net/projects/mingw/files/,下载 mingw-get-setup.exe (86.5 kB)
- 2.运行 mingw-get-setup.exe (86.5 kB) ,点击“运行”,continue等,注意记住安装的目录,如 C:MinGw,下面修改环境变量时还会用到。
- 3.修改环境变量: 选择计算机—属性---高级系统设置---环境变量,在系统变量中找到 Path 变量,在后面加入 min-gw的安装目录,如 C:MinGwbin
- 4.在开始菜单中,点击“运行”,输入 cmd,打开命令行:输入 mingw-get.exe,如果弹出 MinGw installation manager 窗口,说明安装正常。此时,关闭 MinGw installation manager 窗口,否则接下来的步骤会报错
- 5.在cmd中输入命令 mingw-get install gcc,等待一会,gcc 就安装成功了。
如果想安装 g++,gdb,只要输入命令 mingw-get install g++ 和 mingw-get install gdb
(二)使用
在 cmd 的当前工作目录写 C 程序 test.c:
# include <stdio.h>
int main()
{
printf("%sn","hello world");
return 0;
}在 cmd 中输入命令 gcc test.c
在当前目录下会生成 a.exe 的可执行文件,在 cmd 中输入 a.exe 就可以执行程序了。
如果想调试程序,可以输入 gdb a.exe
进入 gdb 的功能,使用 gdb 常用的命令就可以调试程序了。
(三)使用vscode
Win10下使用 vscode 编译 c 语言,安装好 MinGW 后,在里面找到 mingw32-gcc.bin, mingw32-gcc-g++.bin, 以及 mingw32-gdb.bin 第一个是 c 语言文件的编译器,第二个是 c++ 的,第三个是用来调试编译后文件的。然后设置好环境变量,编写好 .c 文件,在 vscode 中打开 .c 文件所在的文件夹(注意是文件夹),然后配置 launch.json 文件如下所示:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "E:MinGWbingdb.exe",
"preLaunchTask": "gcc",//tasks.json里面的名字
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}tasks.json文件如下所示:
{
"version": "2.0.0",
"tasks": [
{
"label": "gcc",
"type": "shell",
"command": "gcc",
"args": [
"-g", "${file}","-o","${fileBasenameNoExtension}.exe"
],
"group":{
"kind": "build",
"isDefault": true
}
}
]
}(四)gcc 进行 c 语言编译分为四个步骤:
1.预处理,生成预编译文件(.i 文件):
gcc –E hello.c –o hello.i2.编译,生成汇编代码(.s 文件):
gcc –S hello.i –o hello.s3.汇编,生成目标文件(.o 文件):
gcc –c hello.s –o hello.o4.链接,生成可执行文件:
gcc hello.o –o hello有时候,进行调试,可能会用到某个步骤哦
2083



被折叠的 条评论
为什么被折叠?



