我设法为C ++配置Sublime Text 2,我现在可以编译我的代码(使用MinGW编译器)。
不幸的是,Sublime Text控制台无法支持C ++的任何输入。
我想在外部控制台(例如Window的终端)中打开我编译的程序。 我尝试使用“call”或“cmd”但无法使其正常工作。 (它仍然在控制台中打开文件)
这是我的构建配置:
{
"cmd": ["C:\\MinGW\\bin\\mingw32-g++.exe", "-Wall", "-time", "$file", "-o", "$file_base_name"],
"cmd": ["call", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"working_dir": "${project_path:${folder}}",
"selector": "source.c",
"shell": true,
"encoding": "latin1"
}
答案 0 :(得分:14)
试试这个:
{
"cmd": ["C:\\Dev-Cpp\\bin\\mingw32-g++.exe", "-static", "-Wall", "-time", "$file", "-o", "$file_base_name.exe", "&&", "start", "$file_base_name"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"working_dir": "${project_path:${folder}}",
"selector": "source.c",
"shell": true,
"encoding": "latin1"
}
诀窍是使用“start”命令执行生成的文件,该命令强制文件在新的cmd窗口中打开,并将所有内容放在第一个cmd定义中(使用&&来执行这两个命令),因为如果你定义了多个cmd数组,它们就会覆盖。
答案 1 :(得分:8)
@FacundoJ:在Mac上,您可以使用终端在外部运行应用程序。在C ++。sublime-build中,更改cmd,使其不是仅运行已编译的输出,而是在Terminal中启动它。
更改自:
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
要:
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && open -a Terminal.app '${file_path}/${file_base_name}'"]
答案 2 :(得分:3)
接受的答案允许您在Windows CMD中执行程序并接受输入。 但是一旦程序执行结束,cmd窗口将立即关闭,然后才能清楚地看到输出。
我认为您应该尝试以下解决方案,在执行程序后保持CMD窗口打开,以便您可以检查结果。
{
"shell_cmd": "g++ -Wall -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}.exe\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"variants":
[ // run in the sublime text console
{
"name": "Run",
"shell_cmd":"\"${file_path}/${file_base_name}\""
},
// run in the Windows cmd
{
"name": "Run in cmd",
// the following two settings are all valid, choose one you prefer
"shell_cmd": "start cmd /k $file_base_name "
// "shell_cmd": "start \"$file_base_name\" call $file_base_name"
}
]
}
首先按 Ctrl + B 编译程序,然后按 Ctrl + Shift + B 并选择run in cmd
选项,它将在系统CMD而不是Sublime Text控制台中运行程序。
以上设置在Windows 8.1上进行了测试,也可以在开箱即用的Windows 7和Windows 10上运行。
答案 3 :(得分:2)
在@FacundoJ接受的答案中,每次运行时都会编译程序。这并不总是必要的(即当您只修改一些外部资源或使用主args时)。在这种情况下,我推荐这个设置:
{
"cmd": ["g++", "$file", "-o", "$file_base_name.exe"],
"working_dir": "${project_path:$folder}",
"selector": "source.cpp",
"shell": true,
"variants": [{
"name": "Run",
"cmd": ["start", "", "$file_base_name"]
}]
}
(假设你的PATH中有C:\ MinGW \ bin),所以你可以像
一样使用它Ctrl + B 编译程序
Ctrl + Shift + B 运行它(当然在编译后)
Note1 请注意start
命令后的空字符串:should be used。
Note2 您应该使用.cpp
后缀,或者默认使用C89语法(至少使用MinGW g ++编译器)
答案 4 :(得分:2)
对于ubuntu
{
"cmd": ["g++ ${file} && xterm -hold -e ./a.out"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c++",
"shell": true,
}
这个构建系统做的是编译.cpp文件并在xterm中打开输出文件。
- >如果您希望输出在 gnome-terminal 中打开,请创建个人资料
在gnome-terminal中,转到编辑 - >配置文件首选项 - >单击“命令”选项卡。选择'保持终端打开'从标记为“当命令退出”的下拉菜单中。您应该为该
创建新的配置文件然后替换" cmd"与
"cmd": ["g++ ${file} && gnome-terminal --window-with-profile=PROFILENAME -e ./a.out"]
答案 5 :(得分:0)
这是工作!!
{"cmd": ["g++", "-Wall", "-ansi", "-pedantic-errors", "$file_name", "-o",
"${file_base_name}.exe", "&&", "start", "cmd", "/k" , "$file_base_name"],
"selector": "source.cpp",
"working_dir": "${file_path}",
"shell": true}
只需输入(ctrl + b)即可查看提升的命令提示符,并像其他IDE一样提供输入。