我想修改我的 Qt 项目的 qmake 文件,使其构建我的程序的两个版本:一个SOME_FLAG
是定义的,另一个是未定义的。我的代码会根据#ifdef SOME_FLAG
.
这可能吗?
据我所知,qmake 只允许一个 TARGET,但有一个例外。也就是说,如果您想构建调试版本和发布版本,可以使用相同的项目文件构建两者。这样,您还可以分别为每个构建指定 DEFINES。请记住,您可以使用 strip 命令在事后删除调试,也许这对您的情况有用。Qt4 HTML 文档(查看它们是否安装在您的系统上)描述了 qmake-common-projects.html 中的 debug_and_release 模式。
也就是说,您可以使用多个项目文件。为每个可执行文件创建一个项目,并为每个项目提供所需的定义。使用 qmake -o 标志为每个目标发出单独的 Makefile,并使用一个 Makefile 来绑定它们。无法帮助您使用 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 $@ $<
Run Code Online (Sandbox Code Playgroud)
这只是一个完成这项工作的快速文件,更擅长 Makefiles 的人可能会使其更加通用。 注意: Makefile 缩进是单个制表符,而不是 8 个空格。
另请注意,默认情况下,可执行文件名称与项目文件的基本名称相同。希望这能让你以某种身份继续前进。
归档时间: |
|
查看次数: |
1100 次 |
最近记录: |