vsCode本地编译环境搭建

本文详细介绍了如何在Windows和Mac系统下使用VSCode、MinGW、cmake搭建C/C++开发环境,包括配置步骤、makefile及CMakeLists.txt编写方法。

目录

1 使用makefile

1.1 windows

1.1.1 下载MinGW

1.1.2 下载vsCode

1.1.3 建立文件目录

1.1.4 打开目录

1.1.5 编写makefile文件

1.1.6 配置vsCode

1.2 MAC

1.2.1 适配mac下的makefile

2 使用cmake

2.1 安装cmake

2.2 电脑上必须有gcc

2.3 下载cmake插件

2.4 设置cmake插件执行的cmake路径

2.5 编写CMakeLists.txt

2.6 CMake选择编译器

2.7 在状态栏中直接运行/调试

3. 关闭"CMake Tools 想要为此文件夹配置 IntelliSense",提示


1 使用makefile

1.1 windows

1.1.1 下载MinGW

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

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

1.1.2 下载vsCode

Visual Studio Code - Code Editing. Redefined官网下载vsCode

1.1.3 建立文件目录

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

1.1.4 打开目录

使用vsCode打开该文件夹,

1.1.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}

1.1.6 配置vsCode

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

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

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

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

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

1.2 MAC

1.2.1 适配mac下的makefile

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))
 
# gcc的名字默认被mac占用
CC = g++-11
 
# -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}

2 使用cmake

2.1 安装cmake

自行百度,windows系统和mac系统下安装cmake的方法

2.2 电脑上必须有gcc

mac 用自带的即可

win需要下载mingw

2.3 下载cmake插件

2.4 设置cmake插件执行的cmake路径

打开vscode设置,查找 Cmake Path,设置成自己pc安装的cmake路径

2.5 编写CMakeLists.txt

cmake_minimum_required(VERSION 2.80)

#project name
project(leetcode)
 
#code path, all filename in director "./" are stored in DIR_TOOT_SRCS
#aux_source_directory(./src DIR_TOOT_SRCS)
file(GLOB_RECURSE DIR_TOOT_SRCS "${PROJECT_SOURCE_DIR}/src/*.cpp" "${PROJECT_SOURCE_DIR}/src/*.c")
 
#add head file dir
include_directories("./inc")
include_directories("./inc/ut_hash")

#enable dubug 
set (CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} -g")
 
#Add an executable
add_executable(leetcode ${DIR_TOOT_SRCS})

#set bin path
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
 
# make sure to use c++ 11 not c++98 
add_compile_options(-std=c++11)

2.6 CMake选择编译器

删除此文件夹下的文件,此文件存放cmake扫描到的编译器列表信息

如图所示操作,选择scan for kits

选择clang编译器即可

 ​​​​

2.7 在状态栏中直接运行/调试

3. 关闭"CMake Tools 想要为此文件夹配置 IntelliSense",提示

 在设置中,去使能即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值