C++ 如何在代码块附加链接器选项中指定子系统?

C++ 如何在代码块附加链接器选项中指定子系统?,c++,linker,mingw,codeblocks,options,C++,Linker,Mingw,Codeblocks,Options,我发现代码块的优点之一是它允许我快速创建、编译和运行文件,而无需创建项目。然而,这意味着我所有的程序都有控制台窗口,这对于大多数windows应用程序来说是不正常的 为了摆脱它,我总是必须创建一个项目,放入文件,然后导航到可以单击GUI应用程序而不是控制台应用程序的位置 然而,在使用g++.exe和ld.exe构建时,显然可以指定相同的内容,CodeBlocks有一个用于附加链接器选项的部分,因此我想我可以将其放在那里,以避免总是创建项目的麻烦,但显然我错了 首先,我发现。当我发现是谁回答了这个

我发现代码块的优点之一是它允许我快速创建、编译和运行文件,而无需创建项目。然而,这意味着我所有的程序都有控制台窗口,这对于大多数windows应用程序来说是不正常的

为了摆脱它,我总是必须创建一个项目,放入文件,然后导航到可以单击GUI应用程序而不是控制台应用程序的位置

然而,在使用g++.exe和ld.exe构建时,显然可以指定相同的内容,CodeBlocks有一个用于附加链接器选项的部分,因此我想我可以将其放在那里,以避免总是创建项目的麻烦,但显然我错了

首先,我发现。当我发现是谁回答了这个问题时,我很惊讶,但这对我没有帮助,因为这一点的关键是,我可以用同样的努力完成它,而无需创建一个项目

显然,
-mwindows
编译器选项可以做到这一点,因此我尝试将其放入
设置\编译器和调试器\编译器设置\其他选项中,它可以很好地编译和链接,但仍然有一个控制台窗口

接下来,我尝试了
Settings\Compiler and Debugger\Linker Settings\Other Linker options
。在谷歌搜索结果的推动下,我尝试添加以下内容,一次激活一个选项,然后重新构建。据我所知,让
-mwindows
处于活动状态并没有什么区别

-Wl:无法识别的命令行选项
--子系统,windows:无法识别的命令行选项
--子系统,windows:windows-无此类文件或目录。
--子系统窗口:windows-无此类文件或目录。
--subsystem=windows:取消限制的命令行选项
--子系统,控制台:控制台-没有这样的文件或目录

这些测试都是在最新版本的代码块、代码块12.11和GCC 4.7.2上完成的,这些代码块是从(9.4版)获得的。然而,我相当肯定它与代码块10.05的工作方式相同


我是被迫使用项目、使用生成文件还是从命令行生成它,还是可以在CodeBlocks IDE全局设置中更改此设置?

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

“但仍有控制台窗口”。GUI窗口出现了吗?@MarkGarcia,我正在测试的那个实际上没有GUI窗口。然而,我已经把没有GUI的程序放进了一个项目中,并以这种方式完成了它,效果很好:在启动程序时,用户不会注意到任何东西。在提到服务之前,它需要进行交互。它实际上是从一个服务开始的。通常情况下,我会坚持常规做法,但这并不是一个正常的应用程序——这只是一个玩笑。不过,答案中解释的技术同样适用于带有GUI的程序:)@MarkGarcia,对不起,我意识到我还没有回答你所有的问题。我找到了一个带有窗口的窗口,并尝试用
-mwindows
编译和运行它。控制台和窗口都会显示。嗯。。。什么版本的代码块?12.11是最新版本。@MarkGarcia,我刚刚在问题的底部添加完信息。我必须这样做:
-Wl,-subsystem:windows
@DaveButler
subsystem:windows
-subsystem之间有什么区别吗,windows
?在Mac上使用它时,会注意到带有CMakeList.txt和铿锵编译器的标志,但可执行文件仍以控制台窗口启动。有什么提示吗?@DaveButler这是我读了几个小时的文档和搜索后唯一有用的东西。谢谢