【问题标题】:libcob: module 'GETSUM' not found - Cobollibcob:未找到模块“GETSUM” - Cobol
【发布时间】:2021-12-25 20:00:12
【问题描述】:

几天前我开始学习 Cobol,我正在观看有关基础知识的视频。我遇到的问题是我正在从另一个文件调用例程,当我编译程序时,我收到错误 libcob: module 'GETSUM' not found。 我在 Windows 10 上使用带有 ubuntu 20.04.4 LTS 的 wsl2 虚拟机。作为编译器,我使用的是 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.    

【问题讨论】:

    标签: cobol


    【解决方案1】:

    当我编译程序时出现错误 libcob: module 'GETSUM' not found

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

    您有两个常规选项:

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

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

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

    【讨论】:

    • 它确实有效。感谢您的帮助
    猜你喜欢
    • 2018-04-04
    • 2018-04-15
    • 2020-09-28
    • 2019-09-11
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    相关资源
    最近更新 更多