gpt4 book ai didi

c++ - 为不同的可执行文件名称制作参数

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:33 29 4
gpt4 key购买 nike

我有一个 C++ 代码库。我有一个 CMakeLists。当我运行 make 时,它会创建二进制文件 myexec

我希望能够运行,比方说,make -- v2,它会创建完全相同的二进制文件,但名为 myexec_v2。如果不必重新编译所有内容来创建此二进制文件,而只需重新编译修改后的文件,那就太好了。

我该怎么做?

最佳答案

myexec myexec_v2: $(prerequisites)
@echo compile $@

观察:

$ make myexec
compile myexec
$ make myexec_v2
compile myexec_v2

如果编译 myexec_v2 不需要其他任何东西,那么您就完成了。

查看此处了解更多信息:https://www.gnu.org/software/make/manual/html_node/Multiple-Targets.html

这是一个稍微高级一点的版本

myexec myexec_v2: myexec%: $(prerequisites)
@echo compile $@ $*

这称为静态模式规则。中间的 myexec% 称为目标模式。在这个例子中,我们只使用它来获取所谓的词干。词干将是 _v2 并且变量 $* 扩展到词干。

了解更多信息:https://www.gnu.org/software/make/manual/html_node/Static-Usage.html

观察:

$ make myexec
compile myexec
$ make myexec_v2
compile myexec_v2 _v2

现在您可以在配方中使用 $@$* 来修改要编译的行为。

但是如果你想在食谱中做分支的话,请先阅读这个:Basic if else statement in Makefile

关于c++ - 为不同的可执行文件名称制作参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37326109/

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