gpt4 book ai didi

c++ - 修改 qmake 文件以构建多个目标以与 '#IFDEF macro' 一起使用

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:12:40 30 4
gpt4 key购买 nike

我想修改我的 Qt 项目的 qmake 文件,使其构建我的程序的两个版本:一个定义了 SOME_FLAG,一个没有定义。根据 #ifdef SOME_FLAG 的结果,我的代码会有不同的行为。

这可能吗?

最佳答案

据我所知,qmake 只允许一个 TARGET,只有一个异常(exception)。也就是说,如果您想要构建调试版本和发布版本,则可以使用相同的项目文件来构建两者。这样,您还可以分别为每个构建指定 DEFINES。请记住,您可以在事后使用 strip 命令删除调试,也许这对您的情况有用。 Qt4 HTML 文档(查看它们是否安装在您的系统上)描述了 qmake-common-projects.html 中的 debug_and_release 模式。

话虽如此,您可以使用多个项目文件。为每个可执行文件创建一个项目,并为每个项目创建所需的 DEFINES。使用 qmake -o 标志为每个目标发布单独的 Makefile,并使用一个 Makefile 来绑定(bind)它们。无法帮助您使用 QtCreator,因为我不使用它,但这在命令行上有效。说明此方案的示例 Makefile 如下所示:

all: Makefile_A Makefile_B
$(MAKE) -f Makefile_A
$(MAKE) -f Makefile_B

Makefile_A: withSomeFlag.pro
qmake -o $@ $<

Makefile_B: withoutSomeFlag.pro
qmake -o $@ $<

这只是一个完成工作的快速文件,更擅长 Makefiles 的人可能会使它更通用。 注意:Makefile 缩进是单个制表符,而不是 8 个空格。

另请注意,默认情况下,可执行文件名称与项目文件的基本名称相同。希望这能让您有所作为。

关于c++ - 修改 qmake 文件以构建多个目标以与 '#IFDEF macro' 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646122/

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