libcob:未找到模块 'GETSUM' - Cobol

libcob: module 'GETSUM' not found - Cobol

我几天前开始学习 Cobol,正在观看有关基础知识的视频。我遇到的问题是我正在从另一个文件调用 rountine,当我编译程序时出现错误 libcob: module 'GETSUM' not found。 我在 windows 10 上使用带有 wIth ubuntu 20.04.4 LTS 的虚拟机。作为编译器,我使用的是 GnuCobol 2.2.0

主文件代码:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. COBOL-TUTORIAL5.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
           01 Num1 PIC 9 VALUE 5.
           01 Num2 PIC 9 VALUE 4.
           01 Sum1 PIC 99.
       PROCEDURE DIVISION.
       CALL 'GETSUM' USING Num1, Num2, Sum1.
       DISPLAY Num1 " + " Num2 " = " Sum1. 
       STOP RUN.
       

获取总和文件:

   IDENTIFICATION DIVISION.
   PROGRAM-ID. GETSUM.
   DATA DIVISION.
   LINKAGE SECTION.
       01 LNum1 PIC 9 VALUE 5.
       01 LNum2 PIC 9 VALUE 4.
       01 LSum PIC 99.
   PROCEDURE DIVISION USING LNum1, LNum2, LSum,.
   ADD LNum1 TO LNum2 GIVING LSum.
   EXIT PROGRAM.    

when I compile the program I get the error libcob: module 'GETSUM' not found

不可能是这种情况,因为这是 COBOL 运行时告诉你模块丢失,所以这只发生在执行时,而不是编译时。

您有两个常规选项:

  1. cobc -x COBOL-TUTORIAL5.cob GETSUM.cob
    --> 一次编译所有内容,创建一个大的二进制文件。在这种情况下,您可能想要添加 -static 以加快运行时间并确保您确实包含了所有必要的内容(否则您会收到链接器错误,通常是一条消息,如“symbol 'GETSUM' not发现”).

  2. 编译至少 GETSUM.cob 作为模块 (cobc GETSUM.cob) 并在 COBOL-TUTORIAL5 时将其放在当前目录中,或使用 COB_LIBRARY_PATH 指向模块所在的位置。

有关详细信息,请参阅 GnuCOBOL 手册 using Multiple source