2017-10-24 5 views
2

Ich konvertiere eine Reihe von COBOL-Programmen für Microfocus-Compiler für die Verwendung mit GnuCobol geschrieben. Bis jetzt war ich nur mäßig erfolgreich und musste nur einige mikrofokusspezifische Datumsbefehle ändern, zusammen mit dem Argument -std=mf von GnuCobol.GNUCobol (OpenCOBOL) Fehler: libcob: Modul '»' nicht gefunden

Ich bin mit einem vorgefertigten Build von www.arnoldtrembley.com/GnuCOBOL.htm

Ich bin mit diesem Fehler Fehler, wenn eine bestimmte Datei nach dem erfolgreichen Kompilieren ausgeführt wird:

libcob: module '»' not found 

Nach etwa in OpenCOBOLIDE spielen, ich festgestellt, dass die beleidigende Linie ist

CALL X"AF" USING SET-BIT-PAIRS 
           USER-KEY-CONTROL 

Was kann ich tun, um das zu beheben?

Antwort

2

Sie müssen diesen Teil recode. GnuCOBOL unterstützt nur einige der nummerierten Systemunterstützungsroutinen. x 91, x E4, x E5, x F4 und x F5. x "AF" ist noch nicht in der Liste der integrierten Systembibliotheksroutinen enthalten. Und selbst die unterstützten enthalten keine Handhabung aller Unterfunktionen.

Da x "AF" bildschirmbezogen ist (zumindest von der Seite, die ich gesehen habe), können Sie wahrscheinlich herausfinden, welche Escape-Codes an das Terminal gesendet werden und diesen Teil manuell mit DISPLAY anstelle von CALL ausführen .

Ohne zu wissen, welche x "AF" -Unterfunktion aufgerufen wird (was auch immer in SET-BIT-PAIRS ist), ist es unmöglich, eine bestimmte VT100-Sequenz vorzuschlagen. Wenn es einfach Unterfunktion 18 ist, dann wird DISPLAY eines einzelnen Zeichens OHNE ERWEITERUNG wahrscheinlich ausreichen. Die Unterfunktion 22 bedeutet nur das Klingeln der Terminalglocke, was durch Abgabe eines Ctrl-G erfolgen kann. Wenn Sie neugierig sind, führen Sie cobc --list-system aus (oder schauen Sie einfach im GnuCOBOL-Handbuch nach, das in dem von Ihnen verwendeten Paket enthalten ist), um zu sehen, welche Aufrufe der Speichersystembibliothek mit GnuCOBOL unterstützt werden. Wenn Sie abenteuerlustig sind, können Sie im Quelltextbaum des Compilers nachsehen und libcob einfach ändern, um den Code zu unterstützen, indem Sie die CALL-Nummer mit einer C-Funktion verknüpfen und libcob/system.def mit dem neuen erweitern GnuCOBOL von der Quelle eingeben und neu aufbauen.

Verwandte Themen