5

我正在尝试在 cobol 中进行 hello world 的链接,就像在本教程中一样,我可以编译程序并成功获取 project.group.OBJ 中的新成员,但是当我将它与

LINK project.group.OBJ(Member) lib('cee.sceelked')

我得到以下信息:

 IEW2278I B352 INVOCATION PARAMETERS - TERM                                    
 IEW2606S 4B39 MODULE INCORPORATES VERSION 3 PROGRAM OBJECT FEATURES AND CANNOT
          BE SAVED IN LOAD MODULE FORMAT.                                      
 IEW2008I 0F03 PROCESSING COMPLETED.  RETURN CODE =  12.

我意识到在 4(前景)选项中,链接编辑器出现在左侧并带有一个星号:“7 *Binder/Link editor”表示“不支持打包数据”。

是因为这个错误吗?“不支持打包数据”是什么意思?我可以毫无问题地访问该选项。

搜索我发现了一个链接,该链接指示“正在尝试以与正在使用的功能不兼容的格式保存模块”但我不知道所使用的功能是什么意思。它与链接时应该放入的数据集负载的类型有关吗?我搞不清楚了。

4

1 回答 1

10

The load module format is very old. The last COBOL compiler from IBM that would generate code that could be bound as a load module is IBM Enterprise COBOL 4.2.x, which is scheduled for end of service on 30-Apr-2022. Even that compiler would generate code that could not be stored as a load module if you used certain compile options, i.e. DLL.

More recent versions of IBM Enterprise COBOL generate code which must be bound as a program object. A program object, while executable like a load module, is very different from a load module.

Load modules are stored in PDSs (Partitioned Data Sets). Program objects must be stored in PDSEs (Partitioned Data Sets Extended).

Ensure the SYSLMOD DD of your bind step (the project.group.LOAD dataset) is pointing to a PDSE. When you allocate it with ISPF 3.2 set the Data set name type to LIBRARY.

于 2021-05-13T03:30:04.473 回答