12

我设法为 C++ 配置了 Sublime Text 2,现在我可以编译我的代码(使用 MinGW 编译器)。

不幸的是,Sublime Text 控制台不支持任何类型的 C++ 输入。

我想在外部控制台(例如 Window 的终端)中打开我编译的程序。我尝试使用“call”或“c​​md”但无法正常工作。(它仍然在控制台中打开文件)

这是我的构建配置:

{
"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"
}
4

6 回答 6

15

试试这个:

{
    "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 数组,它们会覆盖。

于 2012-08-24T02:02:03.020 回答
13

@FacundoJ:在 Mac 上,您可以使用终端在外部运行应用程序。在 C++.sublime-build 中,更改 cmd 以便它不仅仅运行编译的输出,而是在终端中启动它。

更改自:

"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}'"]
于 2013-09-01T20:53:57.403 回答
3

在@FacundoJ 接受的答案中,您每次运行程序时都会编译该程序。这并不总是必要的(即当您只是修改一些外部资源或使用主要参数时)。在这种情况下,我推荐以下设置:

{
  "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++运行它(当然是在编译之后ShiftB

注意1注意命令后的空字符串start应该使用.

注意2你应该使用.cpp后缀,或者默认使用C89语法(至少使用MinGW g++编译器)

于 2014-10-22T01:26:26.867 回答
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 上开箱即用。

于 2017-09-02T07:23:18.583 回答
1

对于 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 中,转到 Edit -> Profile Preferences-> 单击 Command 选项卡。从标有“命令退出时”的下拉菜单中选择“保持终端打开”。您应该为此创建一个新配置文件

然后将“cmd”替换为

 "cmd": ["g++ ${file} && gnome-terminal --window-with-profile=PROFILENAME -e ./a.out"]
于 2016-02-06T18:29:55.347 回答
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}
  • 只需转到工具>构建系统>新构建系统...“C++.sublime-build”...并且必须将其保存为所有文件
  • 选择该构建

只需输入 (ctrl+b)即可查看提升的命令提示符打开并像其他 IDE 一样提供您的输入。

于 2017-10-10T18:06:11.767 回答