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. Windows AppBuilder

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. Linux Editor Editor Editor

Kompilator aplikacji

Kompilator aplikacji Windows Kompilator aplikacji dla systemu Linux

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

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

  1. Uruchom kompilator
  2. Dodaj ścieżkę (jeśli nie została jeszcze zapisana z ostatniej sesji)
  3. Naciśnij F2, aby skompilować.
  4. Obserwuj wszelkie błędy.
  5. 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:

Bez błędów

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:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

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: wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow