控制台出现在发布模式 QT MSVC 2015

Posted

技术标签:

【中文标题】控制台出现在发布模式 QT MSVC 2015【英文标题】:Console appeare in release mode QT MSVC 2015 【发布时间】:2017-08-01 06:21:51 【问题描述】:

我正在创建一个使用 QWebEngine 的应用程序,当我发布我的应用程序时,我遇到了一个我从未见过的奇怪问题!!控制台是否使用我的基于 GUI 的应用程序打开!还有这个 project.pro 文件

#-------------------------------------------------
#
# Project created by QtCreator 2017-07-31T18:43:56
#
#-------------------------------------------------

QT       += core gui webenginewidgets testlib

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Clicker
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0


SOURCES += \
        main.cpp \
        mainwindow.cpp

HEADERS += \
        mainwindow.h

FORMS += \
        mainwindow.ui

RESOURCES += \
    files.qrc

win32:RC_ICONS += a.ico

当控制台打开时,它会在调试模式下显示控制台中显示的一些数据,我猜问题出在使用 QWebEngine 控制台向我显示来自 QWebEngine 中加载的网站的数据查看数据始终以 JS 开头:比如这个

js: Phaser.Cache.isSoundDecoded: Key "dealer_12" not found in Cache.
[5684:3840:0731/214213.208:INFO:CONSOLE(27)] "Phaser.Cache.isSoundDecoded: Key "loose" not found in Cache.", source: example/libs.js (27)

这是控制台中出现的一些数据,所以问题是如何让这个控制台在我启动应用程序时不出现?我不知道是什么导致了这个问题,也不知道我应该搜索什么? 更新 这是我的项目设置的截图 here 这是我的应用程序在我发布应用程序并将所有 DLL 文件复制到文件夹目录here 后打开它时的屏幕截图@

【问题讨论】:

你如何构建你的应用程序? 我同意@vahancho。请向我们展示您正在使用的项目设置(屏幕截图)和配置文件(默认、调试、发布、发布最小尺寸或带有调试信息的发布)。 这个问题看起来很相似:***.com/questions/760323/…。您可以尝试应用那里描述的解决方案。 我更新了这个问题。是的,谢谢,我现在正在检查链接,希望我能解决它 已解决谢谢vahancho,问题是我使用QTest库,默认情况下会显示控制台我在.pro文件中使用QT.testlib.CONFIG -=控制台,它工作正常 【参考方案1】:

感谢 Vahancho,他给了我类似问题的链接 为了在 Windows 上解决这个问题,我将它添加到我的 .pro 文件中的 Qt 项目中

QT.testlib.CONFIG -= console

它起作用的原因是当我在 Qt 中使用 QTest 库时,它默认显示控制台 所以问题不是像我预期的那样使用 QtWebEngine

【讨论】:

以上是关于控制台出现在发布模式 QT MSVC 2015的主要内容,如果未能解决你的问题,请参考以下文章

C++Qt5+win10+MSVC2015 64bit构建程序,Release编译成功后使用windeployqt.exe发布程序使用于win7出现缺少MSVCP140.dll!!!

在 MSVC 的发布模式下初始化 QApplication 失败

安装 Qt 5.6.1 MSVC 2015 更新 3

Qt-Msvc2015配置opencv3.2的坑

Qt信号槽机制源码学习

Qt信号槽机制源码学习