Vscode(WSL)下配置快速運行C++的makefile與快捷鍵-創(chuàng)新互聯(lián)

前言

?最近把Makefile知識補上了。雖然現(xiàn)在項目都是使用cmake、xmake管理了,但Makefile還是要學學的,因為cmake、xmake里面使用的概念、變量都是Makefile中出現(xiàn)過的,有助于理解高級工具。

創(chuàng)新互聯(lián)主營汕頭網站建設的網絡公司,主營網站建設方案,app軟件定制開發(fā),汕頭h5微信小程序搭建,汕頭網站營銷推廣歡迎汕頭等地區(qū)企業(yè)咨詢流程演示

作者的目錄是這樣的,
文件結構

  1. 進入到小項目目錄內在這里插入圖片描述
  2. 在當前目錄下按F6,自動編譯運行在這里插入圖片描述
    需要在小項目目錄內才可以按F6編譯運行。即必須要能在命令行中訪問到.cpp文件。
  3. 生成的可執(zhí)行文件在小項目目錄的build下

在這里插入圖片描述

配置編寫

?很簡單的配置,這里畢竟也只是在寫寫Leetcode、試試語言特性的時候會用到。

過程描述及代碼:
  1. 情況1:取當前目錄(pwd)下所有.cpp文件名,轉換為.o文件名
  2. 情況2:若條件編譯參數(shù)ifeq ($(FILE_NUM),single)成立,則取最新的.cpp文件名,只編譯這一個文件
  3. 進入$(TARGET):$(OBJS)
  4. 顯示編譯時間,判斷build目錄是否已存在,不存在則創(chuàng)建
  5. 使用系統(tǒng)編譯器編譯.o依賴,再使用.o依賴生成可執(zhí)行文件
  6. 清除中間過程生成的.o依賴
  7. 運行該可執(zhí)行文件
#作者的默認配置
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文件已經寫好了,現(xiàn)在配置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}"
        }
},

好了,配置完成。

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

當前題目:Vscode(WSL)下配置快速運行C++的makefile與快捷鍵-創(chuàng)新互聯(lián)
URL網址:http://bm7419.com/article38/hdesp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、網站維護網站改版、標簽優(yōu)化微信小程序、服務器托管

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網站建設