【发布时间】:2019-10-08 16:20:27
【问题描述】:
我有一个跨平台的app(这是一个使用 Qt 绘制的基本椭圆体示例)。它可以编译,我可以在命令提示符下执行它。对于 linux,我知道如何创建一个 .desktop 文件,这样我就可以启动在启动时不显示终端的应用程序。但是在 Windows 上,当我在资源管理器中双击 exe 文件时,它不仅会启动我编写的 Qt gui,而且还会显示一个 cmd 窗口。当我在资源管理器上双击它时,Windows 中有没有办法阻止应用程序打开这个 cmd 窗口?
在 Windows 中,我使用 cmake-gui 设置项目,然后打开生成的 Visual Studio 解决方案并使用 microsoft Visual Studio 2019 进行编译
【问题讨论】:
-
MSVC 中应该有一个编译器标志。类似于应用程序类型,您可以在其中选择控制台应用程序和 GUI 应用程序(后者有另一个名称,但不记得了)。您是否尝试过使用
WinMain函数而不是标准的main函数?我通常不鼓励这样做(首先尝试 MSVC 项目设置),因为它是非标准,但如果它对你有用... -
set_target_properties(your_executable_target PROPERTIES WIN32_EXECUTABLE TRUE)是 CMake 中选择 WinMain 函数而不是 main 函数作为入口点的命令。 -
这是一个在 unix 中也能正常表现的属性吗?我正在开发的真正应用程序必须是跨平台的。
-
是的,我认为是的。该文档没有另外说明它的使用仅限于 Windows。
标签: c++ windows visual-studio qt cmake