内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

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

前言

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

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

作者的目錄是這樣的,
文件結(jié)構(gòu)

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

在這里插入圖片描述

配置編寫

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

過程描述及代碼:
  1. 情況1:取當(dāng)前目錄(pwd)下所有.cpp文件名,轉(zhuǎn)換為.o文件名
  2. 情況2:若條件編譯參數(shù)ifeq ($(FILE_NUM),single)成立,則取最新的.cpp文件名,只編譯這一個(gè)文件
  3. 進(jìn)入$(TARGET):$(OBJS)
  4. 顯示編譯時(shí)間,判斷build目錄是否已存在,不存在則創(chuàng)建
  5. 使用系統(tǒng)編譯器編譯.o依賴,再使用.o依賴生成可執(zhí)行文件
  6. 清除中間過程生成的.o依賴
  7. 運(yùn)行該可執(zhí)行文件
#作者的默認(rèn)配置
TARGET = main
OBJS:= $(patsubst %.cpp,%.o,$(wildcard ./*.cpp))	#當(dāng)前路徑的.cpp轉(zhuǎn)換為.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目錄不存在,已自動(dòng)生成"
endif
	-@echo ""

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

Makefile文件已經(jīng)寫好了,現(xiàn)在配置Vscode的編譯運(yùn)行快捷鍵。

  1. 在Vscode內(nèi),按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" //修改為你的路徑
        }
    },
    //只單獨(dú)編譯一個(gè)文件
    {"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了
快速到達(dá)當(dāng)前文件目錄

同上,加入快捷鍵就好。新建一個(gè)終端,并將pwd設(shè)置為當(dāng)前打開的文件目錄。

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

好了,配置完成。

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

當(dāng)前題目:Vscode(WSL)下配置快速運(yùn)行C++的makefile與快捷鍵-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.rwnh.cn/article38/hdesp.html

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

廣告

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

手機(jī)網(wǎng)站建設(shè)
四子王旗| 临夏县| 白银市| 辉南县| 平潭县| 民和| 崇文区| 石渠县| 沐川县| 高陵县| 嘉鱼县| 汕头市| 绥滨县| 宜阳县| 鄂伦春自治旗| 贺兰县| 阳山县| 浦城县| 咸阳市| 滦平县| 陆川县| 晋江市| 肇源县| 河北省| 大姚县| 长武县| 五莲县| 沈丘县| 七台河市| 兴仁县| 惠州市| 蓬安县| 黔东| 凤台县| 虹口区| 新平| 青川县| 太原市| 恩平市| 沁源县| 沧州市|