网站建设资讯

NEWS

网站建设资讯

Vscode(WSL)下配置快速运行C++的makefile与快捷键-创新互联

前言

 最近把Makefile知识补上了。虽然现在项目都是使用cmakexmake管理了,但Makefile还是要学学的,因为cmakexmake里面使用的概念、变量都是Makefile中出现过的,有助于理解高级工具。

创新互联主营汕头网站建设的网络公司,主营网站建设方案,app软件定制开发,汕头h5微信小程序搭建,汕头网站营销推广欢迎汕头等地区企业咨询流程演示

作者的目录是这样的,
文件结构

  1. 进入到小项目目录内在这里插入图片描述
  2. 在当前目录下按F6,自动编译运行在这里插入图片描述
    需要在小项目目录内才可以按F6编译运行。即必须要能在命令行中访问到.cpp文件。
  3. 生成的可执行文件在小项目目录的build下

在这里插入图片描述

配置编写

 很简单的配置,这里毕竟也只是在写写Leetcode、试试语言特性的时候会用到。

过程描述及代码:
  1. 情况1:取当前目录(pwd)下所有.cpp文件名,转换为.o文件名
  2. 情况2:若条件编译参数ifeq ($(FILE_NUM),single)成立,则取最新的.cpp文件名,只编译这一个文件
  3. 进入$(TARGET):$(OBJS)
  4. 显示编译时间,判断build目录是否已存在,不存在则创建
  5. 使用系统编译器编译.o依赖,再使用.o依赖生成可执行文件
  6. 清除中间过程生成的.o依赖
  7. 运行该可执行文件
#作者的默认配置
TARGET = main
OBJS:= $(patsubst %.cpp,%.o,$(wildcard ./*.cpp))	#当前路径的.cpp转换为.o

NEWEST_FILE:=$(patsubst %.cpp,%.o,$(shell ls -lt | grep -Eo "\b\w+\.(cpp|c)" | head -n 1))  #获取最新的文件
ifeq ($(FILE_NUM),single)
	OBJS:= $(NEWEST_FILE)
endif

LDFLAGS:= 
LIBS:= 
CXXFLAGS:= -std=c++17 -O2 -m64

BUILD_EXIST = $(shell if [ -d build ]; then echo "exist"; else echo "noexist"; fi)
COMPILE_TIME = $(shell date +"%Y-%m-%d %H:%M:%S")
#MAKEFILE_DIR:= $(abspath $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))) #makefile的位置

$(TARGET):$(OBJS)
	-@echo ""
	-@echo "compile_time: $(COMPILE_TIME)"
ifneq (exist,$(BUILD_EXIST))
	@$(shell mkdir build)
	@echo "build目录不存在,已自动生成"
endif
	-@echo ""

	-$(CXX) $^ $(CXXFLAGS) -o ./build/$@ 
	@$(RM) $(OBJS)
	@echo "----------------------Output----------------------"
	@./build/$@
#清理
clean:
	$(RM) ./build/$(TARGET) $(OBJS)
.PHONY:clean
快捷键设置

Makefile文件已经写好了,现在配置Vscode的编译运行快捷键。

  1. 在Vscode内,按Ctrl+Shift+P,输入“打开键盘”
    打开键盘
  2. 在文件末尾加入配置
    //编译目录下所有.cpp文件
    {"key": "f6",	//可以自己修改快捷键
        "command": "workbench.action.terminal.sendSequence",
        "args": {"text": "make -f /home/roya/workSpace/Makefile clean && make -f /home/roya/workSpace/Makefile\r" //修改为你的路径
        }
    },
    //只单独编译一个文件
    {"key": "Ctrl+f6",
        "command": "workbench.action.terminal.sendSequence",
        "args": {"text": "make -f /home/roya/workSpace/Makefile clean && make -f /home/roya/workSpace/Makefile FILE_NUM=single\r" //修改为你的路径
        },
    },
  3. 保存就ok了
快速到达当前文件目录

同上,加入快捷键就好。新建一个终端,并将pwd设置为当前打开的文件目录。

{"key": "alt+f6",
        "command": "workbench.action.terminal.newWithCwd",
        "args": {"cwd": "${fileDirname}"
        }
},

好了,配置完成。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站栏目:Vscode(WSL)下配置快速运行C++的makefile与快捷键-创新互联
网站URL:http://njwzjz.com/article/hdesp.html