第一课:环境配置
在简介中我们知道了要安装 编译器,那具体怎么安装和使用呢?
(一)Windows 环境
(1)安装
在 Windows 上安装和运行 C 语言编程环境,推荐使用 MinGW-w64 + VS Code,
MinGW-w64 是一个 Windows 版本的 GCC(编译器工具包 GNU Compiler Collection),它可以让你在 Windows 上运行 C 代码,而不需要额外的 Linux 子系统。
步骤一:下载 MinGW-w64
-
首先前往官网下载:MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net
-
选择 "MinGW-w64 GCC (Posix threads, SEH) Windows 64-bit" 版本。
-
下载 ZIP 文件(通常名为
mingw-w64-x86_64-posix-seh.zip)。 -
解压到
C:\mingw64(或者任何你喜欢的目录)。
步骤二:配置环境变量
为了在命令行中使用 gcc,需要将 MinGW-w64 添加到 系统 Path 变量:
-
在 Windows 搜索框输入
环境变量并选择 "编辑系统环境变量"。 -
选择 系统变量 ->
Path-> 点击 编辑。 -
点击 新建,输入:
C:\mingw64\bin -
点击 确定 关闭窗口。
-
测试
gcc是否安装成功。- 打开 命令提示符(CMD) 或 PowerShell,输入:
gcc --version- 如果输出如下信息,说明安装成功:
gcc (MinGW-w64) 11.2.0
(2)编译运行
使用记事本、VS Code 或任何编辑器,创建 hello.c:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
进入到保存文件所在的目录。在 命令行 运行:
gcc hello.c -o hello.exe
命令解释:
gcc hello.c👉 编译hello.c-o hello.exe👉 输出hello.exe可执行文件(默认是a.exe)
如果没有错误,它会生成 hello.exe
如果是多个 c 代码的源码文件,编译方法如下:
gcc test1.c test2.c -o main.exetest1.c 与 test2.c 是两个源代码文件。最后运行main.exe即可,注意Linux中要改成main.out
直接双击 exe 文件或者在当前目录下使用命令 ./hello.exe,你会看到输出:
Hello, World!
(3)配置 VScode
VScode 是一个开源免费的编辑器,功能非常强大,并且支持各种语言和很多插件。相当于是记事本的超级plus版。
可以直接去官网下载:Visual Studio Code - Code Editing. Redefined
使用 VScode 可以更好更方便地调试和编写代码。
-
打开 VS Code,按
Ctrl+Shift+X,搜索C/C++并安装 Microsoft 提供的扩展。 -
在
.vscode/目录下创建tasks.json{ "version": "2.0.0", "tasks": [ { "label": "Build C Program", "type": "shell", "command": "gcc", "args": [ "hello.c", "-o", "hello.exe" ], "group": { "kind": "build", "isDefault": true } } ] }按
Ctrl+Shift+B自动编译 C 代码。
或者 可以搜索一个叫 Coderunner 的插件并安装,他可以使用快捷键 F5 自动编译并运行
如果进行过一次编译运行,在文件夹下会多出一个.vscode的文件夹,这个文件夹里面有个tasks.json的文件。 通过编辑 tasks.json文件,我们可以自定义项目中的各种任务
解释:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe 生成活动文件",
"command": "C:\\cygwin64\\bin\\gcc.exe", //编译工具的路径
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}", //参与编译的文件,这里还只是单个
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
//编译生成的可执行文件,与代码文件同名
],
"options": {
"cwd": "C:\\cygwin64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
如果要编译多个文件,可以如下修改:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe 生成活动文件",
"command": "C:\\cygwin64\\bin\\gcc.exe", //注意路径是要双反斜杠的!
"args": [
"-fdiagnostics-color=always",
"-g",
"*.c", //表示并非指定某一个 .c 文件,而是当前文件夹下所有的 .c 文件
"-o",
"${fileDirname}\\program.exe" //多个 .c 文件编译之后的可执行文件就是program.exe
],
"options": {
"cwd": "C:\\cygwin64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
做好以上修改之后,在左侧的 运行与调试 中点击 创建launch.json文件,弹出选项中选择C++(GDB/LLDB)。然后击右下角的添加配置,在弹出的下拉菜单中选择 C/C++:(gdb)启动。
修改内容如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\program.exe", //“program”后的内容是前面的tasks.json文件中的编译后产生的可执行文件
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe", //"miDebuggerPath"后面的是安装的 MinGW-W64 的 gdb 工具的路径。
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
注意:配置好之后,有时不可以使用 F5 来调试
要么点右上角的调试按钮,要么使用快捷键 ctrl+alt+N
(二)Linux 环境
我们使用 Linux虚拟机(比如 VMware 或者 Virtual Box) , 或者使用windows 自带的Linux子系统 WSL,他们使用起来没什么区别。关于WSL 的安装和使用,请看这篇文章:安装WSL
在 WSL(我们安装的是Ubuntu) 上安装 C 语言环境,并运行 C 代码,整个流程与原生 Linux 基本一致。
(1)安装
确保 WSL 里的 Ubuntu 是最新的:
sudo apt update && sudo apt upgrade -y
Ubuntu 预装了 GCC编译器,但如果没有,可以手动安装:
sudo apt install build-essential -y
build-essential 包含:
gcc👉 C 语言编译器g++👉 C++ 编译器(可选)make👉 用于构建项目的工具libc6-dev👉 C 标准库的头文件
安装完成后,检查 GCC 是否可用:
gcc --version
如果成功,会输出类似:
gcc (Ubuntu 11.3.0) 11.3.0
(2)编译运行
在 WSL 里,使用 nano(或 vim)创建一个 hello.c 文件:
nano hello.c
输入以下代码:
#include <stdio.h>
int main() {
printf("Hello, World from WSL!\n");
return 0;
}
然后按 Ctrl + X,输入 Y 保存,按 Enter 退出
使用 gcc 编译:
gcc hello.c -o hello
gcc hello.c👉 编译hello.c-o hello👉 生成可执行文件hello
如果没有错误,它会生成 hello 可执行文件。
运行生成的 hello 文件:
./hello
你应该会看到:
Hello, World from WSL!
(3)安装调试工具
如果你想用 GDB(GNU Debugger) 来调试 C 代码:
sudo apt install gdb -y
然后你可以这样调试:
gdb ./hello
输入 run 运行程序,输入 break main 设置断点。
(4)使用 VS Code 连接 WSL
WSL 直接可以把宿主机的屏幕作为输出端,因此在 WSL 的终端输入 code 可以直接打开 WSL 内部的 VScode。
和之前一样,在 VScode 中 安装插件: C/C++ ,WSL,CodeRunner
(5)远程挂载 WSL 目录
只在 Linux 中使用 命令,仍然有点不方便,可以使用 远程挂载把 WSL 的用户根目录挂载成 Windows 的一个磁盘,这样就实现了在 Windows 文件管理器中直接操作 Linux 内的目录。
详情可见 远程挂载 Linux
C 语言的可执行文件可以在不同的系统运行吗?
❌ 不可以直接运行在不同系统上,因为:
-
编译出来的可执行文件是针对特定操作系统的:
- Windows 编译的
.exe不能直接在 Linux/macOS 上运行。 - Linux/macOS 生成的
a.out不能直接在 Windows 上运行。
- Windows 编译的
-
如果需要跨平台运行,你需要重新编译代码,或者使用
cross-compiler(交叉编译)。