수색…


소개

컴파일 진행 코드를 "r-code"라고하며 일반적으로 확장자가 .r 인 파일에 저장됩니다. 컴파일에는 두 가지 다른 방법이 있습니다 : COMPILE 문 사용 또는 Linux 또는 AppBuilder : 내장 된 응용 프로그램 컴파일러. Developer Studio (Eclipse 환경)에는 빌드 프로세스가 컴파일되어 있습니다.

데이터베이스를 업데이트하는 4GL 프로그램을 컴파일하려면 4GL Development 또는 OpenEdge Studio가 설치되어 있어야합니다.

통사론

  • COMPILE program.p SAVE. // program.p를 컴파일하고 r-code를 저장하십시오.
  • COMPILE VALUE (var) SAVE. // 변수 "var"에 저장된 이름을 컴파일하고 r- 코드를 저장합니다.
  • COMPILE prog.p XREF prog.xref LISTTING prog.list. // prog.p를 컴파일하고 xref와 listing-files를 만든다. r- 코드를 저장하지 마십시오.
  • COMPILE program.p NO-ERROR를 저장하십시오. // program.p를 컴파일하고, r-code를 저장하고, 에러를 억제하여 실행을 멈춘다.

응용 프로그램 컴파일러

Windows AppBuilder

Windows Appbuilder에서 Application Compiler는 도구 메뉴에 있습니다. Windows AppBuilder

프로 시저 편집기 (Linux - pro 또는 Windows pro.exe

프로 시저 편집기 (Linux 및 Windows)에서 도구 메뉴에 컴파일러가있는 경우. Linux 프로 시저 편집기 편집기

응용 프로그램 컴파일러

Windows 응용 프로그램 컴파일러 Linux 응용 프로그램 컴파일러

OS와 관계없이 컴파일러의 기능은 동일합니다. 디렉토리 및 / 또는 파일을 추가하고 컴파일 할 수 있습니다.

주요 설정 (자세한 내용) :

  • 새 .r 파일을 저장하십시오. 선택하지 않으면 파일이 간단히 컴파일되지만 저장되지는 ​​않습니다. 예를 들어 오류 추적에 유용합니다.
  • 하위 디렉토리를보십시오. 그렇지 않으면 하위 디렉토리를 추가해야합니다.
  • 이전 .r 파일을 제거하십시오. 오래된 .r 파일을 덮어 씁니다.
  • Onlu .r 파일이 없으면 컴파일하십시오. 컴파일되지 않은 파일 만 컴파일합니다.

옵션 :

  • Propath - 당신에게 propath를 보여주고, 컴파일 할 디렉토리를 선택합시다.
  • 추가 - 디렉토리 또는 파일을 입력 할 수 있습니다.
  • 수정 - 기존 항목을 수정할 수 있습니다.
  • 삭제 - 항목을 삭제합니다.
  • 컴파일 시작 - 컴파일러를 시작합니다. 바로 가기 : F2

기본 메뉴 선택 사항 :

  • 파일 -> 종료 : 컴파일러를 종료합니다.
  • 컴파일 -> 컴파일 시작 : 컴파일러를 시작합니다. 바로 가기 : F2
  • 도구 -> 다른 도구에 대한 액세스
  • 옵션 -> 컴파일러 ... : 설정, 아래.
  • 도움말 -> OpenEdge 도움말 (Windows 만 해당). 온라인 도움말. 바로 가기 : F1

설정

설정

  • 기본 파일 사양 : 컴파일 할 파일 이름 확장명
  • 메시지 로그 파일 : 메시지, 경고 및 오류를 저장할 파일
  • 저장 위치 : .r 파일을 저장할 위치입니다. 코드와 동일한 디렉토리를 공백으로 두십시오.
  • 언어 : 번역. 여기에서는 다루지 않습니다.
  • V6Frame : 오래되고 쓸모없는 ...
  • Steam-IO : 컴파일러 출력을 인쇄하고 싶다면. 가능성이 높습니다.
  • 파일 나열 : 컴파일러에서 목록 파일을 만들도록하려는 경우. 디버깅에 유용함
  • 추가 : 기존 목록 파일에 추가하십시오. 그렇지 않으면 덮어 씁니다.
  • 페이지 너비 + 길이 : 목록 파일의 형식입니다.
  • 외부 참조 파일 : 컴파일러에서 XREF 를 만들도록하려는 경우. 디버깅, 인덱스 사용량 검사 등에 유용합니다.
  • XML 형식 : 컴파일러 외부 참조가 xml이어야하는 경우. 그렇지 않으면 "일반"텍스트.
  • 추가 : 기존 외부 참조 파일에 추가합니다. 그렇지 않으면 덮어 씁니다.
  • 디버그 파일 : 디버거 목록 파일.
  • 암호화 키 : xcode 사용하여 소스 파일을 암호화하는 경우 여기에 키를 삽입하십시오.
  • R- 코드 크기 최소화 : 일부 디버깅 정보를 제거하여 r- 코드를 작게 유지하십시오.
  • MD-5 생성 : 주로 WebClient 컴파일에 사용됩니다.

기본 사용법

  1. 컴파일러 시작
  2. 경로 추가 (마지막 세션에서 아직 저장하지 않은 경우)
  3. 컴파일하려면 F2 키 를 누릅니다.
  4. 오류를 관찰하십시오.
  5. 출구

COMPILE 문

컴파일 문을 사용하면 진행 ABL에서 프로그램을 컴파일 할 수 있습니다.

기본 사용법 :

COMPILE hello-world.p SAVE.

변수 사용 :

DEFINE VARIABLE prog AS CHARACTER   NO-UNDO.

prog = "hello.p".

COMPILE VALUE(prog) SAVE.

COMPILE 구문에는 몇 가지 옵션이 있습니다.

SAVE 는 .r- 코드를 나중에 사용할 수 있도록 저장해야한다고 명시합니다.

COMPILE hello-world.p SAVE.

SAVE INTO dir OR SAVE INTO VALUE(dir-variable) 은 지정된 디렉토리에 r-code를 저장합니다.

COMPILE hello-world.p SAVE INTO /usr/sources.

LISTING file . 블록, 포함 등에 관한 디버그 정보를 포함하는리스트 파일을 생성합니다.

COMPILE program.p SAVE LISTING c:\temp\listing.txt.

Listing에는 파일, 페이지 크기 및 페이지 너비를 추가하는 몇 가지 옵션이 있습니다.

APPEND PAGE-SIZE num PAGE-WIDTH num 

XREF xreffile 은 문자열 및 색인 사용 등에 대한 정보가 들어있는 컴파일러 외부 참조 파일을 저장합니다. 또한이 파일을 APPEND 할 수도 있습니다.

COMPILE checkFile.p SAVE XREF c:\directory\xref-file.txt.

XREF-XML xreffile-or-dirXREF 와 동일한 기능을 수행하지만 xml 형식으로 파일을 저장합니다. 디렉토리를 사용하면 xref-file의 이름은 programname.xref.xml 됩니다.

COMPILE file.p SAVE XREF c:\temp\.

NO-ERROR 는 프로그램 중지로 인한 오류를 방지합니다.

COMPILE program SAVE NO-ERROR.

DEBUG-LIST file 은 행 번호가있는 디버그 파일을 생성합니다.

COMPILE checkFile.p SAVE DEBUG-LIST c:\temp\debug.txt.

PREPROCESS file 은 먼저 모든 전 처리기를 변환 한 후 컴파일하기 전에 코드로 새 .p- 파일을 작성합니다.

 COMPILE checkFile.p SAVE PREPROCESS c:\temp\PREPROC.txt.

XCODE key 와 함께 암호화 된 소스 코드를 컴파일합니다 key 키와. XREF, XREF-XML, STRING-XREF 또는 LISTING 옵션과 함께 XCODE를 함께 사용할 수 없습니다.

COMPILE program.p SAVE XCODE myKey.

몇 가지 옵션을 결합 할 수 있습니다.

COMPILE prog.p SAVE INTO /usr/r-code XREF /usr/xrefs/xref.txt APPEND LISTING /usr/listings.txt APPEND NO-ERROR.

COMPILER 시스템 핸들

COMPILER 시스템 핸들은 최근 컴파일에 관한 정보를 살펴 보겠습니다.

ok-program.p 가 오류나 경고가없는 프로그램이라고 가정합니다.

COMPILE ok-program.p SAVE NO-ERROR.

DEFINE VARIABLE iError AS INTEGER     NO-UNDO.

MESSAGE  
    "Errors: "   COMPILER:ERROR SKIP
    "Warnings: " COMPILER:WARNING SKIP
    "Messages: " COMPILER:NUM-MESSAGES
    VIEW-AS ALERT-BOX INFORMATION.

다음과 같이 처리합니다.

오류 없음

경고가있는 프로그램 컴파일 :

/* program-with-warning.p */
DEFINE VARIABLE c AS CHARACTER   NO-UNDO.
DEFINE VARIABLE i AS INTEGER     NO-UNDO.

c = "hello".
DISPLAY c.
//This RETURN makes the program exit here and the code below unreachable.
RETURN.

IF TRUE THEN DO:
    i = 10. 
END.

프로그램 컴파일 :

COMPILE program-with-warning.p SAVE.

DEFINE VARIABLE iError AS INTEGER     NO-UNDO.

MESSAGE  
    "Errors: "   COMPILER:ERROR SKIP
    "Warnings: " COMPILER:WARNING SKIP
    "Messages: " COMPILER:NUM-MESSAGES
    VIEW-AS ALERT-BOX INFORMATION.

DO iError = 1 TO COMPILER:NUM-MESSAGES:
    DISPLAY 
        COMPILER:GET-FILE-NAME(iError)    LABEL "Filename" FORMAT "x(20)"
        COMPILER:GET-MESSAGE(iError)      LABEL "Message"  FORMAT "x(50)"
        COMPILER:GET-NUMBER(iError)       LABEL "Msg#"  
        COMPILER:GET-ERROR-COLUMN(iError) LABEL "Column"
        COMPILER:GET-ERROR-ROW(iError)    LABEL "Row"
            WITH FRAME fr1 SIDE-LABELS 1 COLUMNS.
END.

결과:

여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.

오류가있는 프로그램 컴파일

DEFINE VARIABLE c AS CHARACTER   NO-UNDO.
DEFINE VARIABLE i AS INTEGER     NO-UNDO.

c = "hello".
DISPLAY c.
//Casting should be required below...
IF TRUE THEN DO:
    i = c.
END.

프로그램 컴파일 :

//Use no-errors to supress any error messages from interrupting us.
COMPILE c:\temp\program-with-error.p SAVE NO-ERROR.

DEFINE VARIABLE iError AS INTEGER     NO-UNDO.

MESSAGE  
    "Errors: "   COMPILER:ERROR SKIP
    "Warnings: " COMPILER:WARNING SKIP
    "Messages: " COMPILER:NUM-MESSAGES
    VIEW-AS ALERT-BOX INFORMATION.

DO iError = 1 TO COMPILER:NUM-MESSAGES:
    DISPLAY 
        COMPILER:GET-FILE-NAME(iError)    LABEL "Filename" FORMAT "x(20)"
        COMPILER:GET-MESSAGE(iError)      LABEL "Message"  FORMAT "x(50)"
        COMPILER:GET-NUMBER(iError)       LABEL "Msg#"  
        COMPILER:GET-ERROR-COLUMN(iError) LABEL "Column"
        COMPILER:GET-ERROR-ROW(iError)    LABEL "Row"
            WITH FRAME fr1 SIDE-LABELS 1 COLUMNS 20 DOWN.

    DOWN WITH FRAME fr1.
END.

결과적으로 오류 당 두 개의 오류가 거의 항상 발생합니다. "이해할 수 없음"다음에 실제 오류가옵니다. 여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow