수색…
소개
컴파일 진행 코드를 "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는 도구 메뉴에 있습니다.
프로 시저 편집기 (Linux - pro
또는 Windows pro.exe
프로 시저 편집기 (Linux 및 Windows)에서 도구 메뉴에 컴파일러가있는 경우.
응용 프로그램 컴파일러
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 컴파일에 사용됩니다.
기본 사용법
- 컴파일러 시작
- 경로 추가 (마지막 세션에서 아직 저장하지 않은 경우)
- 컴파일하려면 F2 키 를 누릅니다.
- 오류를 관찰하십시오.
- 출구
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-dir
은 XREF
와 동일한 기능을 수행하지만 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.
결과적으로 오류 당 두 개의 오류가 거의 항상 발생합니다. "이해할 수 없음"다음에 실제 오류가옵니다.