Sublime text 3 用 C++ 构建系统,从终端获取输入

问题描述 投票:0回答:2

我正在寻找一个 sublime text 3 构建系统,它可以在 C++14 中运行我的程序,使用终端从用户那里获取输入,并在终端中显示我的输出。经过一些在线搜索后,我在网上找到了这样一个构建系统,它可以做到这一点。构建系统如下:

{
/* Custom Build file for C++14, supports input from user.
* Default terminal emulator is gnome-terminal. You can change it to xterm or
* terminator by changing "gnome-terminal -x" in "cmd" in "variants" field to
* "xterm -e" or "terminator -x".
*/
"cmd": ["g++", "-std=c++14", "$file", "-o", "${file_path}/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++, source.cxx, source.cpp",
"variants":
[
{
"name": "Run",
"cmd": ["bash", "-c", "g++ -std=c++14 '${file}' -o '${file_path}/${file_base_name}' && gnome-terminal -x bash -c '\"${file_path}/${file_base_name}\" ; read'"]
}
]
}

它完美地运行我的代码并完成我正在查看的所有内容。但我在 sublime 控制台上收到一条消息,其中写道:

# Option "-x" is deprecated and might be removed in a later version of gnome-terminal.
# Use "-- " to terminate the options and put the command line to execute after it.
[Finished in 1.3s]

这是什么意思?我如何通过编辑上面的 sublime 构建来解决这个问题?

c++ c++14 sublimetext3
2个回答
0
投票

警告消息是完全不言自明的。在“运行”部分,命令是

"cmd": ["bash", "-c", "g++ -std=c++14 '${file}' -o '${file_path}/${file_base_name}' && gnome-terminal -x bash -c '\"${file_path}/${file_base_name}\" ; read'"]

&&
之后,无需使用
gnome-terminal -x bash -c ...
,只需添加
gnome-terminal -- bash -c ...
即可完成设置。


0
投票

在你的 Sublime Text 窗口上...

  1. Cmd + Shift + P
  2. 输入安装包
  3. 等待 1 到 2 秒并输入“Terminus”
  4. 安装 Terminus 后,使用此 json
  5. 创建一个新的 sublime 版本

{
  "target": "terminus_exec",
  "cancel": "terminus_cancel_build",
  "focus": true,
  "cmd": ["g++", "-std=c++14", "${file}", "-o", "${file_path}/${file_base_name}"],
  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
  "working_dir": "${file_path}",
  "selector": "source.c, source.c++",

  "variants": [{
    "name": "Run",
    "cmd": ["bash", "-c", "g++ -std=c++14 '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
  }]
}

© www.soinside.com 2019 - 2024. All rights reserved.