1
17
简短的回答是,包含qt testlib会导致控制台出现。移除它会使它消失。 为了进一步解释,如果.pro文件将testlib添加到qt,例如
然后用这样的一条线执行最后的连接步骤。
我们已经开始使用控制台子系统了!我假设使用testlib会强制发生这种情况,这样测试输出就有地方可去了。 如果我们现在编辑.pro文件并删除对testlib的引用并重新生成,我们会得到这样的链接步骤
哎呀!子系统是Windows,不再有控制台窗口。 |
2
8
您需要确保提供了-mwindows开关。 编辑: 或者,您可以进入makefile并将其添加到链接器标志中:
|
3
8
我认为这不是这个具体答案的解决办法(而且是4年后的问题)。 但我认为,许多人在这个线程中会寻找这个设置: 项目>生成并运行>运行设置>运行> [X]磨合终端 取消选择它,在没有额外终端窗口的情况下从qtcreator运行GUI。然后,终端输出将嵌入到IDE中。 |
4
5
对于那些使用cmake解决此问题的人,我找到了真正的解决方案 here . 由本人核实。
简而言之,您需要添加
|
5
4
确保.pro文件没有添加
在你的.pro文件的末尾。如果
|
6
3
听起来您的链接器设置是为控制台应用程序设置的。您可以尝试将链接器设置为使用/subsystem:windows选项。控制台应用程序的选项是/subsystem:console。如果您在Visual Studio中构建项目,请创建一个Win32项目。不要创建Win32控制台应用程序。Visual Studio下用于设置子系统的选项位于项目设置-链接器-系统-子系统下。选择Windows(/subsystem:windows)。 我研究了如何使用mingw/gcc来实现这一点。的联机文档 gcc 显示Windows目标的不同选项。像其他人所说的,你正在寻找的选项是-mwindows。选项-mwindows创建一个窗口应用程序。您当前的设置似乎是-mconsole。选项-mconsole生成一个控制台应用程序。这是一个链接器选项。我不熟悉qt creator,但我猜想它有一种类似的方式来查看项目设置,就像Visual Studio一样。 |
7
3
我用cmake代替qmake。我使用了set(cmake_cxx_flags“-mwindows”)。 好像 qmake_cxflags+=-mWindows 在你的.pro文件中也会这样做。 |
8
1
去:
|
9
0
默认情况下,链接器假定您需要一个控制台应用程序。 修复方法是将“-mwindows”添加到编译器的参数列表中,这也将无形地添加所需的库(-lkernel32、-lgdi32等)。您可能需要将main()更改为winmain()作为入口点。 你的编辑: qt构建系统使用“spec”文件添加变量,您可以在$qtdir/qt/mkspecs中找到它们。在QCreator中创建新的Windows应用程序时,它将默认规范设置为“win32-g++”,这将自动设置正确的变量(Windows应用程序、链接器标志等)。 当您在Linux下创建项目时,它使用了另一个规范,这导致了您的问题。您可以在“yourproject.pro.user”文件中看到当前规范。 |
10
0
qt/2009.05/qt/mkspecs/win32-g++
修改你的????.pro文件(例如添加新行或空格)
|
user user · 分配1073745919字节的内存不足 6 年前 |
Ryou · Qt Creator调试不会直接在断点处停止 6 年前 |
CD86 · QtCreator Cmake C++17功能 6 年前 |
M.H. · 在Qt Creator的控制台应用程序中调试共享插件 7 年前 |