11

我发现 CodeBlocks 的优点之一是它允许我在不创建项目的情况下快速创建、编译和运行文件。但是,这意味着我的所有程序都有控制台窗口,这对于大多数 Windows 应用程序来说是不正常的。

为了摆脱它,我总是不得不创建一个项目,把我的文件放进去,然后导航到我可以点击GUI Application而不是Console Application的地方。

但是,显然可以在使用 g++.exe 和 ld.exe 构建时指定相同的东西,并且 CodeBlocks 有一个用于附加链接器选项的部分,所以我想我可以把它放在那里以避免总是创建项目的麻烦,但显然我错了。

首先,我发现了这个问题。当我发现谁回答了这个问题时,我感到很惊讶,但这对我没有帮助,因为这一切的重点是我可以在创建项目的情况下以同样多的努力做到这一点。

显然,-mwindows编译器选项会这样做,所以我试着把它放进去Settings\Compiler and Debugger\Compiler settings\Other options,它编译和链接很好,但仍然有一个控制台窗口。

接下来,我尝试了Settings\Compiler and Debugger\Linker settings\Other linker options. 在 Google 结果的推动下,我尝试在其中添加以下内容,一次激活一个选项,然后进行重建。-mwindows据我所知,活跃并没有什么区别。

-Wl : 无法识别的命令行选项
--subsystem,windows: 无法识别的命令行选项
--subsystem, windows: windows - 没有这样的文件或目录。
--subsystem windows: windows - 没有这样的文件或目录。
--subsystem=windows: Unregocnized 命令行选项
--subsystem, console: 控制台 - 没有这样的文件或目录。

此测试均在从MinGW 发行版(版本 9.4)获得的最新版本 CodeBlocks、CodeBlocks 12.11 和 GCC 4.7.2 上完成。但是,我相当确定它与 CodeBlocks 10.05 的工作方式相同。

我是否被迫使用项目、使用 makefile 或从命令行构建它,或者是否可以在 CodeBlocks IDE 全局设置中更改此设置?

4

1 回答 1

8

传递-Wl,--subsystem,windows给链接器是执行此操作的正确方法。如果它似乎不起作用,请确保您没有在某处插入空格;按原样使用参数。

于 2012-12-20T15:00:04.233 回答