Ricerca…


introduzione

Compilare il codice di avanzamento come viene chiamato "r-code" e viene normalmente salvato in un file con estensione .r. Ci sono un paio di modi diversi di compilazione: usando l'istruzione COMPILE o su Linux o AppBuilder: il compilatore di applicazioni integrato. Developer Studio (l'ambiente Eclipse) è stato compilato nel suo processo di compilazione.

È necessario avere 4GL Development o OpenEdge Studio installato per compilare programmi 4GL che aggiornano il database.

Sintassi

  • COMPILE program.p SALVA. // Compilare program.p e salvare il suo codice r
  • VALORE COMPILATO (var) RISPARMIA. // Compilare il nome salvato nella variabile "var" e salvare il suo codice r
  • COMPILE prog.p XREF prog.xref LISTING prog.list. // Compila prog.p e crea xref e list-files. Non salvare il codice r.
  • COMPILE program.p SAVE NO-ERROR. // Compilare program.p, salvare gli errori r-code e supress per interrompere l'esecuzione.

Compilatore di applicazioni

Windows AppBuilder

In Windows Appbuilder il compilatore di applicazioni si trova nel menu Strumenti. Windows AppBuilder

Editor delle procedure (Linux- pro o Windows pro.exe

Nell'editor delle procedure (sia Linux che Windows) il compilatore, se presente nel menu Strumenti. Editor di procedura di Linux

Compilatore di applicazioni

Compilatore di applicazioni Windows Compilatore di applicazioni Linux

Indipendentemente dal sistema operativo, la funzionalità del compilatore è la stessa. È possibile aggiungere directory e / o file e compilarli.

Impostazioni principali (più sotto):

  • Salva il nuovo file .r. Se non selezionato, i file verranno semplicemente compilati ma non salvati. Utile per il tracciamento degli errori, per esempio.
  • Cerca nelle sottodirectory. Altrimenti dovranno essere aggiunte sottodirectory.
  • Rimuovi i vecchi file .r. Sovrascrivi il vecchio file .r.
  • Onlu Compile se No .r File. Compila solo i file non compilati.

Opzioni:

  • Propath: ti mostra il propath e ti consente di selezionare le directory da compilare.
  • Aggiungi: consente di inserire una directory o un file.
  • Modifica: consente di modificare una voce esistente.
  • Elimina: elimina una voce.
  • Start Compile - Avvia il compilatore. Scorciatoia: F2

Le scelte del menu principale:

  • File -> Esci: esce dal compilatore
  • Compila -> Inizia compilazione: avvia il compilatore. Scorciatoia: F2
  • Strumenti -> Accesso ad altri strumenti
  • Opzione -> Compilatore ...: Impostazioni, vedi sotto.
  • Aiuto -> Guida OpenEdge (solo per Windows). Aiuto online. Scelta rapida: F1

impostazioni

impostazioni

  • Default File Spec: Filename estensioni da compilare
  • File di registro messaggi: file per salvare messaggi, avvisi ed errori in
  • Salva in: dove archiviare il file .r. Se vuoto la stessa directory del codice.
  • Lingue: per traduzioni. Non coperto qui.
  • V6Frame: vecchio e inutile ...
  • Steam-IO: se si desidera stampare l'output del compilatore. Molto probabilmente no.
  • File di elenco: se si desidera che il compilatore crei un file di elenco. Utile per il debug
  • Aggiungi: aggiungi al file di elenco esistente. Altrimenti sovrascrivi.
  • Larghezza pagina + lunghezza: formato del file dell'elenco.
  • File Xrif: se vuoi che il compilatore crei un XREF . Utile per il debug, controllo dell'uso dell'indice ecc.
  • Formato XML: se il compilatore xref deve essere un xml. Altrimenti testo "semplice".
  • Aggiungi: aggiungi al file xrif esistente. Altrimenti sovrascrivi.
  • File di debug: file di elenco debugger.
  • Chiave di crittografia: se il file di origine è crittografato utilizzando xcode inserire la chiave qui.
  • Riduci al minimo le dimensioni del codice R: rimuovi alcune informazioni di debug per mantenere piccolo il codice r.
  • Genera MD-5: Principalmente per la compilazione di WebClient.

Utilizzo di base

  1. Avvia il compilatore
  2. Aggiungi un percorso (se non è già stato salvato dall'ultima sessione)
  3. Premi F2 per compilare.
  4. Osserva eventuali errori.
  5. Uscita

Dichiarazione COMPILE

L'istruzione di compilazione ti consente di compilare i programmi in corso ABL:

Utilizzo di base:

COMPILE hello-world.p SAVE.

Con una variabile:

DEFINE VARIABLE prog AS CHARACTER   NO-UNDO.

prog = "hello.p".

COMPILE VALUE(prog) SAVE.

Ci sono diverse opzioni per lo stato COMPILE :

SAVE afferma che il codice .r deve essere salvato per un uso futuro.

COMPILE hello-world.p SAVE.

SAVE INTO dir OR SAVE INTO VALUE(dir-variable) salva il codice r nella directory specificata:

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

LISTING file . Crea un file di elenco contenente informazioni di debug riguardanti i blocchi, include ecc.

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

Listing ha un paio di opzioni per aggiungere file, dimensioni della pagina e larghezza della pagina:

APPEND PAGE-SIZE num PAGE-WIDTH num 

XREF xreffile salverà un file xref del compilatore contenente informazioni sull'utilizzo di stringhe e indici ecc. Puoi anche APPEND questo.

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

XREF-XML xreffile-or-dir farà la stessa cosa di XREF ma invece di salvare il file in formato xml. Se si utilizza una directory, il file xref sarà denominato programname.xref.xml .

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

NO-ERROR sopprimerà eventuali errori dall'arresto del programma.

COMPILE program SAVE NO-ERROR.

DEBUG-LIST file genera un file di debug con numeri di riga.

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

PREPROCESS file prima tradurrà tutti i preprocessori e quindi creerà un nuovo file .p con il codice prima della compilazione.

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

XCODE key compilerà un codice sorgente crittografato con key come chiave. Non è possibile utilizzare XCODE con le opzioni XREF, XREF-XML, STRING-XREF o LISTING insieme.

COMPILE program.p SAVE XCODE myKey.

Puoi combinare diverse opzioni:

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

Gestire il sistema COMPILER

Il sistema COMPILER ti consente di esaminare le informazioni relative a una compilazione recente.

Supponendo che ok-program.p sia un programma senza errori o avvertenze:

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.

Questo procede:

Nessun errore

Compilare un programma con un avvertimento:

/* 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.

Compilando il programma:

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.

Risultato:

inserisci la descrizione dell'immagine qui

inserisci la descrizione dell'immagine qui

Compilare un programma con un errore

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.

Compilando il programma:

//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.

Risultato, ci sono quasi sempre due errori per errore. "Could not understand" è seguito dall'errore effettivo: inserisci la descrizione dell'immagine qui

inserisci la descrizione dell'immagine qui



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow