从命令行覆盖 qmake 变量

Posted

技术标签:

【中文标题】从命令行覆盖 qmake 变量【英文标题】:overwrite qmake variable from command line 【发布时间】:2018-12-14 13:54:03 【问题描述】:

在 Qt 项目中,我在代码中使用了一个变量。 这是通过使用

APP_NAME = "QField"
DEFINES += "APP_NAME=\"\\\"$$APP_NAME\\\"\""

如何从命令行修改它?

我尝试在 qmake 构建步骤的附加参数中添加 APP_NAME=my_name,但没有成功。

注意:APP_NAME 和 DEFINES 行位于 .pri 文件中,该文件包含在 qmake 调用的 .pro 文件中。

【问题讨论】:

【参考方案1】:

如何从命令行修改它?

只需在 qmake 的命令行中指定 APP_NAME=my_name

我尝试在 qmake 构建步骤的附加参数中添加 APP_NAME=my_name,但没有成功。

这是因为随后覆盖了 .pro/.pri 文件中的变量。您应该添加条件以防止发生这种情况:

#APP_NAME = "QField"
!defined(APP_NAME, var):APP_NAME = "QField"

【讨论】:

以上是关于从命令行覆盖 qmake 变量的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 qmake 在链接器命令行上添加控制台子系统?

Windows下使用命令行编译Qt项目(解决DLL丢失问题)

Qt命令行编译代码

如何测试使用的命令行参数?

从命令行上传时如何覆盖pypi包?

Spring:从命令行覆盖一个 application.property