如何在CodeBlocks附加链接器选项中指定子系统?

时间:2012-12-19 04:01:42

标签: c++ linker mingw codeblocks options

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

为了摆脱它,我总是不得不创建一个项目,抛出我的文件,然后导航到我只能点击 GUI Application 而不是 Console Application

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

首先,我找到this question。当我发现谁回答它时,我感到很惊讶,但这对我没有帮助,因为这一点的重点在于我可以用相同的努力来实现它没有创建一个项目。

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

接下来,我尝试了Settings\Compiler and Debugger\Linker settings\Other linker options。在谷歌搜索结果的推动下,我尝试在其中添加以下内容,一次激活一个选项,然后重建。就我所知,-mwindows有效时没有任何区别。

  

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

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

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

1 个答案:

答案 0 :(得分:6)

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