vsCode本地编译环境搭建

windows

1、先下载MinGW,这个可以自行百度,(注意MinGW和MinGW64是不同的,属于两个组织)将MinGW添加到系统环境变量中

更改bin目录下的mingw32-make为make,方便后续直接使用make命令调用makefile

vsCode本地编译环境搭建_第1张图片

2、在https://code.visualstudio.com/官网下载vsCode

3、建立名为demo的文件夹,在文件夹下创建inc文件夹(用于存放.h文件)、src文件夹(用于存放.c文件)

vsCode本地编译环境搭建_第2张图片

4、使用vsCode打开该文件夹,

vsCode本地编译环境搭建_第3张图片

5、编写makefile文件,具体见如下代码

#把不同的路径赋给相应的变量
DIR_SRC = ./src
DIR_INC = ./inc
DIR_OBJ = ./obj
DIR_BIN = ./bin

#目标名称
TARGET = main

BIN_TARGET = $(DIR_BIN)/$(TARGET)

#把./source中的所有.c文件拿出来赋给变量SRC_PATH,包括.c文件的路径
SRC_PATH = $(wildcard ${DIR_SRC}/*.c)

#去掉SRC的路径,然后把所有.c文件后缀名,改为.o,最后把这些.o文件赋给变量
OBJ = $(patsubst $(DIR_SRC)/%.c,$(DIR_OBJ)/%.o,$(SRC_PATH))

CC = gcc

# -Wall  打开所有告警
# -o0    不进行编译优化,一般使用-o2进行优化
# -I$(DIR_INC) 头文件路径
CFLAGS = -std=c99 -g -o0 -Wall -I${DIR_INC}

#$(CC) $^ -o $@ -I ${DIR_INC}
${BIN_TARGET}:${OBJ}
	@if not exist $(notdir $(DIR_BIN)) md $(notdir $(DIR_BIN))
	$(CC) -o ${BIN_TARGET} ${OBJ}
$(DIR_OBJ)/%.o:$(DIR_SRC)/%.c
	@if not exist $(notdir $(DIR_OBJ)) md $(notdir $(DIR_OBJ))
	$(CC) -c $(CFLAGS) $^ -o $@

.PHONY:clean all

# window下删除文件操作
clean:
	@if exist "$(notdir $(DIR_OBJ))" rmdir /q/s "$(notdir $(DIR_OBJ))"
	@if exist "$(notdir $(DIR_BIN))" rmdir /q/s "$(notdir $(DIR_BIN))"
all:
	@echo ${SRC_PATH}
	@echo ${OBJ}

6、配置vsCode

在vsCode界面同时按住ctrl+shift+p键,在命令里输入edit configurations,软件会新创建.vscode/c_cpp_properties.json

vsCode本地编译环境搭建_第4张图片

主要是修改成自己电脑安装的MinGW对应的gcc路径

vsCode本地编译环境搭建_第5张图片

该文件修改好了之后,鼠标放在该文件上,在菜单栏中找到“打开配置”功能,此时会自动建立一个lauch.json的文件,根据截图中的内容进行修改

vsCode本地编译环境搭建_第6张图片

 

在菜单中打开“配置任务功能”,会新创建task.json文件,根据文件内容进行修改即可

vsCode本地编译环境搭建_第7张图片

配置完成之后,在“新建终端”弹出的窗口中输入make会进行代码编译(或者按F5启动启动debug调试方式)

MAC

1、mac下的命令和windows下的命令不同,因此makefile内容如下:

#把不同的路径赋给相应的变量
DIR_SRC = ./src
DIR_INC = ./inc
DIR_OBJ = ./obj
DIR_BIN = ./bin
 
#目标名称
TARGET = main
 
BIN_TARGET = $(DIR_BIN)/$(TARGET)
 
#把./source中的所有.c文件拿出来赋给变量SRC_PATH,包括.c文件的路径
SRC_PATH = $(wildcard ${DIR_SRC}/*.c)
 
#去掉SRC的路径,然后把所有.c文件后缀名,改为.o,最后把这些.o文件赋给变量
OBJ = $(patsubst $(DIR_SRC)/%.c,$(DIR_OBJ)/%.o,$(SRC_PATH))
 
CC = gcc
 
# -Wall  打开所有告警
# -o0    不进行编译优化,一般使用-o2进行优化
# -I$(DIR_INC) 头文件路径
CFLAGS = -std=c99 -g -o0 -Wall -I${DIR_INC}
 
#$(CC) $^ -o $@ -I ${DIR_INC}
${BIN_TARGET}:${OBJ}
	@test -d $(notdir $(DIR_BIN)) || mkdir -p $(notdir $(DIR_BIN))
	$(CC) -o ${BIN_TARGET} ${OBJ}
	@rm -rf $(notdir $(DIR_OBJ))
$(DIR_OBJ)/%.o:$(DIR_SRC)/%.c
	@test -d $(notdir $(DIR_OBJ)) || mkdir -p $(notdir $(DIR_OBJ))
	$(CC) -c $(CFLAGS) $^ -o $@
 
.PHONY:clean all
 
# window下删除文件操作
clean:
	@rm -rf $(notdir $(DIR_OBJ))
	@rm -rf $(notdir $(DIR_BIN))
all:
	@echo ${SRC_PATH}
	@echo ${OBJ}

 

你可能感兴趣的:(Algorithm)