gpt4 book ai didi

makefile - 了解 makefile 中的 "subst"关键字和特定行

转载 作者:行者123 更新时间:2023-12-05 09:13:22 25 4
gpt4 key购买 nike

我参加了 CPP 语言类(class),我试图了解 makefile 中“subst”的用法(一般情况下)以及此 makefile 中的具体用法。

我试图用谷歌搜索“subst”的用法,但没有找到。

CXX=clang++-5.0
RM=rm -f
CPPFLAGS=-std=c++17

ifndef MAIN
MAIN=./main.cpp
endif

MAINEXECUTABLE=$(subst .cpp,,$(MAIN)).exe

SOURCES=$(MAIN)

all: $(MAINEXECUTABLE)
$(MAINEXECUTABLE)

$(MAINEXECUTABLE): $(SOURCES) $(HEADERS)
$(CXX) $(CPPFLAGS) $(SOURCES) -o $(MAINEXECUTABLE)

clean:
$(RM) *.exe a.out *.class *.ppm

此 makefile 是通用 makefile,可用于编译任何单个 cpp 文件。

最佳答案

来自GNU make引用手册:

$(subst from,to,text)

Performs a textual replacement on the text text: each occurrence of from is replaced by to. The result is substituted for the function call. For example,

$(subst ee,EE,feet on the street)

substitutes the string ‘fEEt on the strEEt’.

将它应用到您的案例中,函数调用查看主文件名并去除 .cpp 扩展名(通过用空字符串替换它)。然后它将 .exe 扩展名添加到现在没有扩展名的文件名中。

关于makefile - 了解 makefile 中的 "subst"关键字和特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56414361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com