使用Atom运行C程序时出现双控制台的原因咨询
解决Atom运行C程序时弹出两个控制台的问题
嘿,我太懂你遇到的这个情况了!之前帮好几个用Atom写C的朋友排查过这个问题,本质上大多是编译和运行的命令被分开执行导致的,具体原因和解决办法我给你拆解下:
可能的原因
- 编译与运行命令独立执行:Atom里常用的C插件(比如Script插件)默认可能会把编译(
gcc yourfile.c -o yourfile.exe)和运行(yourfile.exe)拆成两个单独的命令来执行。编译命令本身不需要交互,执行完成后终端窗口就会自动关闭,所以你会看到第一个窗口闪一下就没;而运行程序的命令需要等待输出或输入,所以第二个窗口能正常保留。 - 插件配置未合并会话:部分插件的默认设置是为每个命令单独启动一个终端会话,编译是一个会话,运行又是另一个,自然就会弹出两个窗口。
- Windows终端的默认行为:在Windows系统下,如果执行的命令没有需要交互的步骤,cmd窗口会在命令执行完毕后自动退出,这也是第一个窗口一闪而过的助推因素。
实用解决办法
- 合并编译运行命令:在插件的命令配置里,把编译和运行整合成一条命令。比如改成:
这条命令会先完成编译,只有编译成功后才会运行程序,全程只用一个终端窗口。gcc %file% -o %file_base%.exe && %file_base%.exe - 调整插件终端设置:以Script插件为例,找到设置里的「Run Options」,勾选「Keep panel open」(或者类似保持终端打开的选项),或者设置让所有命令在同一个终端会话里执行,避免重复弹窗口。
- 给编译命令加暂停(临时方案):如果只是想看看编译过程的输出,可以在编译命令后加
&& pause,比如gcc %file% -o %file_base%.exe && pause,这样编译完窗口会停住,你看完按任意键再运行程序,但这个方法还是会有两个窗口,只是第一个不会一闪而过,更推荐前面的合并命令方案。
内容的提问来源于stack exchange,提问作者Alexandre Leite Lopes
相关产品推荐
相关产品推荐

