我试图添加一个任务来编译程序,但是在设置环境变量时遇到了困难。我有这个:
{
// See https://go.microsoft.com/fwlink LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"label": "GnuCOBOL - Compile (single file)",
"type": "shell",
"options": {
"env": {
"PATH=c:\\gnucobol3\\bin"
"COB_CONFIG_DIR=c:\\gnucobol3\\config"
"COB_COPY_DIR=c:\\gnucobol3\\copy"
"COB_INCLUDE_PATH=c:\\gnucobol3\\include"
"COB_LIB_PATH=c:\\gnucobol3\\lib"
},
"command": "cobc",
"args": [
"-x",
"-std=mf",
"-tPROG.LST",
"BBCB.CBL"
]
},
}
所有env条目的下面都有波浪线,并显示错误“预期冒号”。
我将感谢您的帮助。谢谢。
答案 0 :(得分:1)
文件路径用于基于Windows的操作系统(c:\ ...
)。如果您使用的是Linux,则不正确。
此格式为JSON。
"env": { ... }
采用key:value对(由花括号确定),因此您将需要:
"PATH": "c:\\gnucobol3\\bin",
冒号(:
)分隔键和值,而逗号(,
)分隔key:value对。
不确定是否需要转义文件路径\\
还是仅转义\
。
NB "args": [ ... ]
采用一个字符串值数组(由方括号确定),这就是为什么它与"env"
答案 1 :(得分:0)
所有env条目的下面都有波浪线,并显示错误“预期冒号”。
因为它期望包含一个列表,该列表应该在其中包含冒号并使用逗号分隔(与options
变量相同)[注意:这实际上是一个json问题,使用该标签可能是合理的]。
参见Schema for tasks.json。
此外,您的脚本还有一些硬连接的文件名(特定于vscode),您可能需要改用supported variables。
未经测试的结果:
{
// See https://go.microsoft.com/fwlink LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"label": "GnuCOBOL - Compile (single file)",
"type": "shell",
"options": {
"env": {
"PATH": "c:\\gnucobol3\\bin",
"COB_CONFIG_DIR": "c:\\gnucobol3\\config",
"COB_COPY_DIR": "c:\\gnucobol3\\copy",
"COB_INCLUDE_PATH": "c:\\gnucobol3\\include",
"COB_LIB_PATH": "c:\\gnucobol3\\lib",
},
"command": "cobc",
"args": [
"-x",
"-std=mf",
"-t${fileBasenameNoExtension}.LST",
"${file}"
]
},
}