【发布时间】:2020-09-01 18:10:43
【问题描述】:
此构建系统用于在 c++ 中对 3 列视图中的 sublime 文本进行竞争性编码
{
"cmd": ["g++.exe","-std=c++17", "${file}", "-o", "${file_base_name}.exe", "&&" , "./${file_base_name}.exe<inputf.in>outputf.in"],
"shell":true,
"working_dir":"$file_path",
"selector":"source.cpp"
}
为移植所做的修改
{
"cmd": ["g++","-std=c++17", "${file}", "-o", "${file_base_name}", "&&" , "./${file_base_name}<inputf.in>outputf.in"],
"shell":true,
"working_dir":"$file_path",
"selector":"source.cpp"
}
错误
g++: fatal error: no input files
compilation terminated.
[Finished in 0.0s with exit code 1]
[cmd: ['g++', '-std=c++17', '/home/xxx/Documents/CP/file.cpp', '-o', 'file', '&&', './file<inputf.in>outputf.in']]
[dir: /home/xxx/Documents/CP]
[path: /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl]
为端口 v2 所做的修改
{
"cmd": ["g++ -std=c++17 ${file} -o ${file_base_name}"," && ", "./${file_base_name}<inputf.in>outputf.in"],
"shell":true,
"working_dir":"$file_path",
}
使用新的 v2 构建系统解决了无输入文件问题并编译了文件,但 outputf.in 文件中仍然没有输出
只使用终端中的命令
g++ -std=c++17 file.cpp -o file && ./file<inputf.in>outputf.in
在 outputf.in 文件中产生输出
【问题讨论】:
-
文件
/home/xxx/Documents/CP/file.cpp似乎不存在。 -
它确实首先检查了该问题
-
您是否打开了命令行并验证该命令在那里工作?
-
g++ -std=c++17 file.cpp -o file.o和./file.o <inputf.in>outputf.in工作正常 -
到底为什么你的最终可执行文件会被赋予
.o扩展名?该扩展名应保留给它们默认拥有的中间对象文件。
标签: c++ linux sublimetext3 build-system sublime-build