Iniciar Sesión

Ver la Versión Completa : [Compilador] IBM COBOL for Linux - Error al compilar


dariodr
26 de enero de 2023, 05:30
Buenas coboleros tengo este codigo simple de archivos, lo he compilado con: GNUCOBOL y funciona bien, lo he compilado con RMCOBOL y funciona bien, pero a la hora de compilar con IBM COBOL me aparece este error no se que significa: IBM COBOL for Linux 1.1.0 compile started
cob3: ../../../../wscobolpp/wds/cblle/mrm/qlnslkup.c:489: Semantic_lookupLocalByType: La declaración `isNamedEntryAndDataNameOrSpecialRegisterOrTypeOrS creen(tempDictHdl) == 1' no se cumple.

cob2: cob3 terminated with signal 6 (Abortado).

Les pego el codigo

IDENTIFICATION DIVISION.
PROGRAM-ID. AGENDA.
*
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT AGENDA ASSIGN TO "agenda.dat"
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
*
DATA DIVISION.
FILE SECTION.
FD AGENDA.
01 PERSONA.
03 NOMBRE PIC X(39).
03 EDAD PIC 99.
03 DIRECCION PIC X(40).
03 TELEFONO PIC 9(7).
*
WORKING-STORAGE SECTION.
01 I PIC 999.
*
PROCEDURE DIVISION.
PROCESO.
OPEN OUTPUT AGENDA.

DISPLAY "NOMBRE:" NO ADVANCING.
ACCEPT NOMBRE.
DISPLAY "EDAD: " NO ADVANCING.
ACCEPT EDAD.
DISPLAY "DIRECCION: "NO ADVANCING.
ACCEPT DIRECCION.
DISPLAY "TELEFONO: " NO ADVANCING.
ACCEPT TELEFONO.

WRITE PERSONA.

CLOSE AGENDA.

GOBACK.

Kuk
26 de enero de 2023, 08:45
@dariodr, en esta parte de código:


SELECT AGENDA ASSIGN TO "agenda.dat"


Cámbialo por


SELECT AGENDA ASSIGN TO AGENDA


Y a ver si compila.

dariodr
26 de enero de 2023, 12:15
Nada, aun aparece ese error. Alguien sabe de que se trata.
Salu2.

JCantero
26 de enero de 2023, 19:28
Eso tiene pinta de algun problema del compilador. Debe de faltar algo.

Has probado a ejecutar el compilador solo ? ( sin poner programa para compilar)

Y ver que mensaje da.......

JCantero
26 de enero de 2023, 19:42
Echale tambien un vistazo a ese link.

Opciones de enlace y compilación de la aplicación IBM COBOL for AIX (https://www.ibm.com/docs/es/db2/11.5?topic=cobol-aix-application-compile-link-options)

Como siempre, IBM poniendo las cosas faciles los jodios.

dariodr
29 de enero de 2023, 03:02
Resuelto, solo era colocar RECORD MODE IS F, despues del FD.
Siempre los de IBM complicando las cosas.

IDENTIFICATION DIVISION.
PROGRAM-ID. AGENDA.
*
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT AGENDA ASSIGN TO "agenda.dat"
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
*
DATA DIVISION.
FILE SECTION.
FD AGENDA
RECORDING MODE IS F. (Faltaba esta clausula)
01 PERSONA.
03 NOMBRE PIC X(39).
03 EDAD PIC 99.
03 DIRECCION PIC X(40).
03 TELEFONO PIC 9(7).
*
WORKING-STORAGE SECTION.
01 I PIC 999.
*
PROCEDURE DIVISION.
PROCESO.
OPEN OUTPUT AGENDA.

DISPLAY "NOMBRE:" NO ADVANCING.
ACCEPT NOMBRE.
DISPLAY "EDAD: " NO ADVANCING.
ACCEPT EDAD.
DISPLAY "DIRECCION: "NO ADVANCING.
ACCEPT DIRECCION.
DISPLAY "TELEFONO: " NO ADVANCING.
ACCEPT TELEFONO.

WRITE PERSONA.

CLOSE AGENDA.

GOBACK.