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

Posted

技术标签:

【中文标题】如何防止 qmake 在链接器命令行上添加控制台子系统?【英文标题】:How to prevent qmake from adding the console subsystem on the linker command line? 【发布时间】:2013-09-06 21:24:00 【问题描述】:

qmake 将/SUBSYSTEM:CONSOLE/SUBSYSTEM:WINDOWS 都放在链接器命令行上。尽管项目文件中存在CONFIG += windowsCONFIG -= console,但还是会出现这种情况。这是 Qt 5.1.1,app 模板,否则默认设置。 mkscpec 是 win32-msvc2012。我正在使用widgetstestlib 子系统。

如何摆脱CONSOLE 子系统?

【问题讨论】:

其实这里的问题比anwser对我有用... 【参考方案1】:

在 Qt 5 中使用testlib 模块通过MODULE_CONFIG 机制添加了console 选项。无论您指定什么全局选项,这都会将/SUBSYSTEM: CONSOLE 强制到链接器命令行,即使您使用CONFIG -= console

console 配置在 qtbase/src/testlib/testlib.pro 内的 testlib 模块配置中给出。这意味着它ends up in QT.testlib.CONFIG variable。 如果您想在不强制控制台子系统的情况下使用 testlib,它很容易移除。在您的项目文件中,添加

QT.testlib.CONFIG -= console

【讨论】:

以上是关于如何防止 qmake 在链接器命令行上添加控制台子系统?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在 make clean 上运行 qmake?

从命令行覆盖 qmake 变量

如何使用命令行将“其他链接器标志”添加到 xcode 项目?

如何防止执行批处理文件后自动关闭控制台

libstdc++ - 不使用 qmake 静态链接

在命令行上使用带有jupyter nbconvert v5.3.1的自定义预处理器