サーチ…


前書き

Compile "r-code"と呼ばれる進捗コード。通常、拡張子.rのファイルに保存されます。コンパイルにはいくつかの方法があります: COMPILE文を使用するか、LinuxまたはAppBuilder:組込みアプリケーションコンパイラ。 Developer Studio(Eclipse環境)にはビルドプロセスが組み込まれています。

データベースを更新する4GLプログラムをコンパイルするには、4GL DevelopmentまたはOpenEdge Studioがインストールされている必要があります。

構文

  • COMPILE program.p SAVE。 // program.pをコンパイルしてrコードを保存する
  • COMPILE VALUE(var)SAVE。 //変数 "var"に保存された名前をコンパイルし、rコードを保存します。
  • コンパイルprog.p XREF prog.xref LISTING prog.list。 // prog.pをコンパイルし、xrefとlisting-filesを作成します。 rコードは保存しないでください。
  • COMPILE program.p NO-ERRORを保存します。 // program.pをコンパイルしてrコードを保存し、エラーを抑えて実行を停止します。

アプリケーションコンパイラ

Windows AppBuilder

Windows Appbuilderでは、Application CompilerはToolsメニューにあります。 Windows AppBuilder

プロシージャエディタ(Linux - proまたはWindows pro.exe

プロシージャエディタ(LinuxとWindowsの両方)で、ツールメニューにコンパイラがある場合Linuxのプロシージャエディタエディタ

アプリケーションコンパイラ

Windowsアプリケーションコンパイラ Linuxアプリケーションコンパイラ

OSにかかわらず、コンパイラの機能は同じです。ディレクトリやファイルを追加してコンパイルすることができます。

主な設定(以下を参照):

  • 新しい.rファイルを保存します。チェックされていない場合、ファイルは単にコンパイルされますが保存されません。たとえば、エラートラッキングに役立ちます。
  • サブディレクトリを見てください。それ以外の場合は、サブディレクトリを追加する必要があります。
  • 古い.rファイルを削除します。古い.rファイルを上書きします。
  • Onlu .rファイルがない場合にコンパイルします。コンパイルされていないファイルのみをコンパイルします。

オプション:

  • Propath - あなたにプロパスを示し、コンパイルするディレクトリを選択しましょう。
  • 追加 - ディレクトリまたはファイルを入力できます。
  • 変更 - 既存のエントリを変更できます。
  • 削除 - エントリを削除します。
  • Start Compile - コンパイラを起動します。ショートカット: F2

メインメニューの選択肢:

  • ファイル - >終了:コンパイラを終了する
  • コンパイル - >コンパイル開始:コンパイラを開始します。ショートカット: F2
  • ツール - >他のツールへのアクセス
  • オプション - >コンパイラ...:設定、以下を参照してください。
  • ヘルプ - > OpenEdgeヘルプ(Windowsのみ)。オンラインヘルプ。ショートカット: F1

設定

設定

  • デフォルトのファイル仕様:コンパイルするファイル拡張子
  • メッセージログファイル:メッセージ、警告、およびエラーを保存するファイル
  • 保存先:.rファイルを保存する場所。空白の場合は、コードと同じディレクトリ。
  • 言語:翻訳のため。ここでは扱いません。
  • V6Frame:古いと不慣れな...
  • Steam-IO:コンパイラ出力を印刷したい場合。ほとんどない可能性があります。
  • リストファイル:コンパイラがリストファイルを作成する場合。デバッグに便利
  • 追加:既存のリストファイルに追加します。それ以外の場合は上書きします。
  • ページ幅+長さ:リストファイルの書式。
  • 外部参照ファイル:コンパイラにXREFを作成させる場合。デバッグ、インデックスの使用状況のチェックなどに便利です。
  • XMLフォーマット:コンパイラのxrefがxmlである必要がある場合。そうでなければ "平らな"テキスト。
  • 追加:既存のxrefファイルに追加します。それ以外の場合は上書きします。
  • デバッグファイル:デバッガリストファイル。
  • 暗号化キー: 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)保存するか、 SAVE INTO dir OR SAVE INTO VALUE(dir-variable)保存するSAVE INTO dir OR SAVE INTO VALUE(dir-variable)は、指定されたディレクトリにrコードを保存します。

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

LISTING file 。ブロックに関する情報を含むリストファイルを作成します。

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

リストには、ファイル、ページサイズ、およびページ幅を追加するための2つのオプションがあります。

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という名前にprogramname.xref.xmlます。

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

NO-ERRORは、プログラムの停止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 keyXCODE keykeyとして暗号化されたソースコードをコンパイルします。 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がエラーまたは警告のない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.

その結果、エラーごとに2つのエラーがほぼ常に発生します。 「理解できませんでした」の後に実際のエラーが続きます。 ここに画像の説明を入力

ここに画像の説明を入力



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow