progress-4gl
Kompilacja
Szukaj…
Wprowadzenie
Skompiluj kod postępu jako „r-kod” i zwykle jest zapisywany w pliku z rozszerzeniem .r. Istnieje kilka różnych sposobów sporządzania: Korzystanie z COMPILE
oświadczenie lub Linux lub AppBuilder: wbudowana w aplikacji Compiler. Developer Studio (środowisko Eclipse) ma wbudowaną kompilację.
Musisz mieć zainstalowany program 4GL Development lub OpenEdge Studio, aby skompilować programy 4GL, które aktualizują bazę danych.
Składnia
- SKompiluj program.p ZAPISZ. // Skompiluj program.p i zapisz jego kod r
- WARTOŚĆ SKompilowana (var) ZAPISZ. // Skompiluj nazwany zapisany w zmiennej „var” i zapisz jego kod r
- KOMPILACJA prog.p XREF prog.xref LISTA prog. Lista. // Skompiluj prog.p i utwórz pliki odnośników i pliki list. Nie zapisuj kodu r.
- SKompiluj program.p ZAPISZ BEZ BŁĘDU. // Kompiluj program.p, zapisz kod r i pomiń błędy, aby zatrzymać wykonywanie.
Kompilator aplikacji
Windows AppBuilder
W Windows Appbuilder kompilator aplikacji znajduje się w menu Narzędzia.
Edytor procedur (Linux - pro
lub Windows pro.exe
W Edytorze procedur (zarówno w systemie Linux, jak i Windows) kompilator znajduje się w menu Narzędzia.
Kompilator aplikacji
Niezależnie od systemu operacyjnego funkcjonalność kompilatora jest taka sama. Możesz dodawać katalogi i / lub pliki i kompilować je.
Główne ustawienia (więcej poniżej):
- Zapisz nowy plik .r. Jeśli nie zaznaczone, pliki zostaną po prostu skompilowane, ale nie zapisane. Przydatne na przykład do śledzenia błędów.
- Szukaj w podkatalogach. W przeciwnym razie trzeba będzie dodać podkatalogi.
- Usuń stare pliki .r. Zastąp stary plik .r.
- Kompilacja Onlu, jeśli nie ma pliku .r. Kompiluje tylko nieskompilowane pliki.
Opcje:
- Propath - pokazuje propath i pozwala wybrać katalogi do skompilowania z niego.
- Dodaj - pozwala wprowadzić katalog lub plik.
- Modyfikuj - pozwala zmodyfikować istniejący wpis.
- Usuń - usuwa wpis.
- Rozpocznij kompilację - uruchamia kompilator. Skrót: F2
Główne opcje menu:
- Plik -> Wyjdź: wychodzi z kompilatora
- Kompiluj -> Uruchom kompilację: Uruchamia kompilator. Skrót: F2
- Narzędzia -> Dostęp do innych narzędzi
- Opcja -> Kompilator ...: Ustawienia, patrz poniżej.
- Pomoc -> Pomoc OpenEdge (tylko Windows). Pomoc online. Skrót: F1
Ustawienia
- Domyślna specyfikacja pliku: rozszerzenia nazw plików do skompilowania
- Plik dziennika komunikatów: Plik do zapisywania wiadomości, ostrzeżeń i błędów w
- Zapisz w: Gdzie przechowywać plik .r. Jeśli pusty, ten sam katalog co kod.
- Języki: do tłumaczeń. Nie objęte tutaj.
- V6Frame: Stary i nieużyteczny ...
- Steam-IO: Jeśli chcesz wydrukować dane wyjściowe kompilatora. Najprawdopodobniej nie.
- Plik listy: jeśli chcesz, aby kompilator utworzył plik listy. Przydatne do debugowania
- Dołącz: dodaj do istniejącego pliku listy. W przeciwnym razie zastąp.
- Szerokość strony + długość: Format pliku listy.
- Plik Xref: Jeśli chcesz, aby kompilator utworzył plik
XREF
. Przydatny do debugowania, sprawdzania użycia indeksu itp. - Format XML: Jeśli odnośnik kompilatora powinien być plikiem XML. W przeciwnym razie „zwykły” tekst.
- Dołącz: dodaj do istniejącego pliku odnośnika. W przeciwnym razie zastąp.
- Plik debugowania: plik listy debugowania.
- Klucz szyfrowania: Jeśli plik źródłowy jest szyfrowany za pomocą
xcode
wstaw klucz tutaj. - Zminimalizuj rozmiar kodu R: Usuń niektóre informacje debugowania, aby utrzymać kod R mały.
- Generuj MD-5: Głównie do kompilacji WebClient.
Podstawowe użycie
- Uruchom kompilator
- Dodaj ścieżkę (jeśli nie została jeszcze zapisana z ostatniej sesji)
- Naciśnij F2, aby skompilować.
- Obserwuj wszelkie błędy.
- Wyjście
Instrukcja COMPILE
Instrukcja kompilacji umożliwia kompilowanie programów w toku ABL:
Podstawowe użycie:
COMPILE hello-world.p SAVE.
Ze zmienną:
DEFINE VARIABLE prog AS CHARACTER NO-UNDO.
prog = "hello.p".
COMPILE VALUE(prog) SAVE.
Istnieje kilka opcji do COMPILE
-statement:
SAVE
stwierdza, że kod .r należy zapisać do wykorzystania w przyszłości.
COMPILE hello-world.p SAVE.
SAVE INTO dir OR SAVE INTO VALUE(dir-variable)
zapisuje kod r w określonym katalogu:
COMPILE hello-world.p SAVE INTO /usr/sources.
LISTING file
. Tworzy plik listy zawierający informacje debugowania dotyczące bloków, obejmuje itp.
COMPILE program.p SAVE LISTING c:\temp\listing.txt.
Lista zawiera kilka opcji dodawania plików, rozmiaru strony i szerokości strony:
APPEND PAGE-SIZE num PAGE-WIDTH num
XREF xreffile
zapisze plik xref kompilatora zawierający informacje o wykorzystaniu łańcucha i indeksu itp. Możesz również APPEND
ten plik.
COMPILE checkFile.p SAVE XREF c:\directory\xref-file.txt.
XREF-XML xreffile-or-dir
zrobi to samo co XREF
ale zamiast tego zapisze plik w formacie xml. Jeśli używasz katalogu, plik odnośnika będzie miał nazwę programname.xref.xml
.
COMPILE file.p SAVE XREF c:\temp\.
NO-ERROR
usunie wszelkie błędy związane z zatrzymaniem programu.
COMPILE program SAVE NO-ERROR.
DEBUG-LIST file
generuje plik debugowania z numerami linii.
COMPILE checkFile.p SAVE DEBUG-LIST c:\temp\debug.txt.
PREPROCESS file
najpierw przetłumaczy wszystkie preprocesory, a następnie utworzy nowy plik p z kodem przed kompilacją.
COMPILE checkFile.p SAVE PREPROCESS c:\temp\PREPROC.txt.
XCODE key
skompiluje zaszyfrowany kod źródłowy z key
jako kluczem. Nie można używać XCODE razem z opcjami XREF, XREF-XML, STRING-XREF lub LISTING.
COMPILE program.p SAVE XCODE myKey.
Możesz połączyć kilka opcji:
COMPILE prog.p SAVE INTO /usr/r-code XREF /usr/xrefs/xref.txt APPEND LISTING /usr/listings.txt APPEND NO-ERROR.
Uchwyt systemu COMPILER
Uchwyt systemu COMPILER
pozwala przejrzeć informacje dotyczące ostatniej kompilacji.
Zakładając, że ok-program.p
to program bez żadnych błędów lub ostrzeżeń:
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.
Spowoduje to:
Kompilowanie programu z ostrzeżeniem:
/* 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.
Kompilacja programu:
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.
Wynik:
Kompilowanie programu z błędem
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.
Kompilacja programu:
//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.
Wynik, prawie zawsze występują dwa błędy na błąd. Po błędzie „nie można zrozumieć” pojawia się błąd: