如何使用GnuCOBOL进行编译

时间:2019-05-19 05:07:03

标签: visual-studio-code vscode-settings gnucobol

我试图添加一个任务来编译程序,但是在设置环境变量时遇到了困难。我有这个:

{
  // 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条目的下面都有波浪线,并显示错误“预期冒号”。

我将感谢您的帮助。谢谢。

2 个答案:

答案 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}"
      ]
    },
}