qmake 中的 host_build 是啥?

Posted

技术标签:

【中文标题】qmake 中的 host_build 是啥?【英文标题】:What is host_build in qmake?qmake 中的 host_build 是什么? 【发布时间】:2021-05-04 14:50:41 【问题描述】:

我经常在 .prf 文件中看到条件 host_build,例如

host_build|staticlib: CONFIG += static

主机构建是什么意思?什么情况下host_build设置为true?

【问题讨论】:

【参考方案1】:

很简单,如果host_build 为真,那么目标机器(“主机”)将与当前机器(“构建”)具有相同的架构,即项目没有被交叉编译.

另请注意,qmake 不支持所谓的“加拿大十字”。

UPD。默认情况下,qmakehost_build 设置为 false 并使用 QMAKE_XSPEC 作为主机规范。通常这并不重要,因为QMAKE_XSPECQMAKE_SPEC 相同(请参阅qmake -query)。但如果您需要确保还设置了host_build,则必须手动添加option(host_build)

【讨论】:

我正在使用 mingw64 套件从 Windows10 64 位源代码构建 Qt 5 二进制文件(在另一个目录而不是源目录中)。运行 configure.bat 脚本时我没有提供任何选项。那么目标机器与当前机器具有相同的架构吗?不幸的是,host_build 是假的,为什么? 你的意思是我需要将qt配置为“configure.bat -host_build”吗?这究竟是什么意思?有许多基于 host_build 条件的代码。对于构建结果,使用和不使用 host_build 选项有什么区别? @William 那必须添加到 .pro 文件中。 但我很少在 .prf/.pro 文件中看到 option(host_build) 条件,只是很多裸露的 host_build。 @William "Normal" 项目根本不使用 host_build。

以上是关于qmake 中的 host_build 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

qmake - 查询 Linux 中的内部设置 - 它们在哪里?

QT中的qmake详解

QMake在moc文件上的多个定义

Qmake 创建 Visual Studio 项目 - 设置“工作目录”

在 qmake 文件中使用正则表达式

QT qmake 小写我的自定义小部件名称