Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试创建一个makefile,因此在调用它时,语法将为make releaseor make debug。
make release
make debug
为此,我编写了以下生成文件:
release debug: mode := $@ release debug: build build: *** actual build commands using $(mode) ***
但在制作过程中,当达到build规则时,$(mode)似乎是空的。
build
$(mode)
是否有更好/正确的构建调试和发布二进制文件?
'$@' 自动变量仅在构建目标时可用。评估规则时它没有值。因此,在执行该行期间未设置“$@”:
release debug: mode := $@
考虑为“构建”和“发布”设置规则
release debug: $(MAKE) build mode=$@ build:
或替代方案(我认为不太直观,但更有效):
release: mode=release debug: mode=debug build: ...