2017-10-24 10 views
2

GnuCobol과 함께 사용하기 위해 Microfocus 컴파일러 용으로 작성된 COBOL 프로그램 세트를 변환 중입니다. 지금까지는 적당히 성공했지만 GnuCobol의 -std=mf 인수와 함께 일부 마이크로 포커스 관련 날짜 명령 만 변경하면되었습니다. 나는GNUCobol (OpenCOBOL) 오류 : libcob : module '»'찾을 수 없음

libcob: module '»' not found 

을 OpenCOBOLIDE 주변에서 재생 후 :

나는 성공적으로 컴파일 한 후 특정 파일을 실행했을 때이 오류에 문제가있어 www.arnoldtrembley.com/GnuCOBOL.htm

에서 사전 구축 된 빌드를 사용하고 있습니다 문제의 라인은

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

이 문제를 해결하려면 어떻게해야합니까?

답변

2

해당 부분을 다시 코딩해야합니다. GnuCOBOL은 번호 매겨진 시스템 지원 루틴 중 일부만 지원합니다. x "91", x "E4", x "E5", x "F4"및 x "F5" x "AF"는 내장 시스템 라이브러리 루틴 목록에 아직 없습니다. 그리고 심지어 지원되는 것들은 모든 하위 기능의 처리를 포함하지 않습니다.

x "AF"는 화면과 관련이 있습니다 (적어도 내가 본 하나의 문서 페이지에서부터), 터미널에 보낼 이스케이프 코드를 알아 내고 CALL 대신 DISPLAY로 수동으로 수행 할 수 있습니다 .

x "AF"하위 기능이 호출 될 때 (SET-BIT-PAIRS에있는 것이 무엇이든지) 모르면 시도를 제안하는 특정 VT100 시퀀스를 찾는 것이 불가능합니다. 단순히 하위 기능 18이면 ADVANCING이없는 단일 문자의 표시로 충분할 것입니다. 하위 기능 22는 Ctrl-G를 눌러서 수행 할 수있는 터미널 벨 울림을 의미합니다. 기타

호기심이 있다면 cobc --list-system을 실행하거나 GnuCOBOL에서 지원되는 재고 시스템 라이브러리 호출을 확인하기 위해 사용하는 사전 빌드 된 패키지에 포함 된 GnuCOBOL 매뉴얼을보십시오.

당신이 모험이라면, 당신은 컴파일러 소스 코드 트리를 자유롭게보고 libcob을 변경하여 CALL 번호를 C 함수에 연결하고 libcob/system.def를 새로운 것으로 확장함으로써 코드를 지원할 수 있습니다 소스에서 GnuCOBOL 항목을 다시 작성하고 다시 작성하십시오.