gpt4 book ai didi

Windows 相当于 makefile 中的命令替换

转载 作者:可可西里 更新时间:2023-11-01 12:02:18 26 4
gpt4 key购买 nike

我想在程序的“关于”框中显示当前构建(hg 修订)号。我考虑过在代码中使用“定义”(std::string rev = REVISION;) 并通过 makefile 将值传递给 g++:

$(CPP) -c main.cpp -o main.o -DREVISION=`hg id -i`

会像一个魅力一样工作,但我在 windows 上开发 windows,所以我的问题:如何在 windows 上创建这样的行为。

最佳答案

如果您使用的是 g++,那么您的假设基本上是正确的,除了传递宏定义是使用 -D 选项而不是 -d 完成的。另外,Make 中的$(CPP) 通常是指C PreProcessor。 C++ 编译器是 $(CXX)

    $(CXX) -c main.cpp -o main.o -DREVISION=`hg id -i`

关于命令替换,如果您在 UNIX-ish 兼容层中运行您的构建,它应该可以正常工作,例如 CygwinMinGW .如果不是,您可以完全避免使用命令替换,并将 hg id -i 的结果按字面意思传递给编译器,例如如下:

REVISION := $(shell hg id -i)

...
$(CXX) -c main.cpp -o main.o -DREVISION=$(REVISION)

关于Windows 相当于 makefile 中的命令替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8717583/

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