环境准备
- 编译器,笔者使用的MinGW64,安装好后一定不要忘记配置好环境变量,可以使用gcc -v确认编译器是否配置好。
- VScode 官网下载安装。
编译运行
- 命令行运行
新建C文件,熟悉的HelloWorld。
这个时候可以使用命令行运行,VSCode菜单栏Terminal—>new Termial 如下进入目录直接运行。
- 一键运行
打开VSCode 安装下面俩个插件(VSCode的强大之处很多大佬提供了丰富的插件)
安装好后选中c文件点击VSCode右上放的三角或者使用Ctrl+Alt+N即可运行。运行结果如下
- 多文件编译运行
上面讲述的都是单个文件的时候运行,从上面了解到其实Code Runner只是代替你手动输命令,当你需要少量的多文件运行,可以更改settings.json的gcc命令来实现。以如下目录结构为例,VSCode打开工作目录,
Ctrl+Shift+P 搜索settings 打开JSON文件
把settings.json 修改如下:
{
"files.autoGuessEncoding": true,
"code-runner.runInTerminal": true,
"files.associations": {
},
"code-runner.executorMap": {
"c":"cd $dir && gcc *.c ../../hello2/src/*.c ../../hello1/src/*.c -I ../inc/ -I ../../hello2/inc/ -I ../../hello1/inc/ -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
},
}
其实就是按照gcc 源文件1.c 源文件2.c -I incPath1 -I incPath2
的命令修改即可,注意头文件的路径可以是相对路径也可以是绝对路径,如果#include的时候把头文件的路径加上,gcc 编译的时候可以不用把路径加上。
当程序文件很多架构大时,需要学习makefile的编写,使用make命令。还是以上面的文件为例:
Makefile文件
MainExt =.exe
SourceExt =.c
TargetExt =.o
OBJ_DIR := obj
BIN_DIR := bin
MAIN_SRC_DIR := main/src
MAIN_INC_DIR := main/inc
HELLO1_SRC_DIR := hello1/src
HELLO1_INC_DIR := hello1/inc
HELLO2_SRC_DIR := hello2/src
HELLO2_INC_DIR := hello2/inc
cc := gcc
CFLAGS := -g -Wall -I./$(MAIN_INC_DIR) -I./$(HELLO1_INC_DIR) -I./$(HELLO2_INC_DIR) -DDEBUG
MAIN_SRCS := $(wildcard $(MAIN_SRC_DIR)/*.c)
MAIN_HDRS := $(wildcard $(MAIN_INC_DIR)/*.h)
HELLO1_SRCS := $(wildcard $(HELLO1_SRC_DIR)/*.c)
HELLO1_HDRS := $(wildcard