1

Ada83 を Ada95 ファイルに変換しています。別のを呼び出すファイルをコンパイルしようとすると、問題が発生します。エラーは「無効な文字」であり、プリプロセッサへのディレクティブを参照しています:

BAS_PUT で;

#if ADA_COMPILER="GNAT" then

WITH ADA.GNAT_PUT;

#そうしないと

WITH ADA_PUT;

#終了する場合;

別の(A_CALL_PUT)手順....

この問題は、同じプリプロセッサ ディレクティブが別の関数ではないファイル adb にある場合には発生しません。

誰かが私を助けることができますか?

4

1 に答える 1

3

Ada にはプリプロセッサがないため、#実際には不正な文字です。

一部のコンパイラ (例: Gnat) には 1 つ付属していますが、そうである場合は独自の工夫によるものです。必要に応じて、外部プリプロセッサ (例: C プリプロセッサ) を介して Ada ソース ファイルを実行するようにビルド システムをセットアップできます。私はそれをしたことはありませんが、非常に実行可能であると言われています。

コンパイラにプリプロセッサが付属している場合、それは非標準です。必要に応じて使用してください。ただし、定義上、移植可能なソース ファイルを作成するのには役に立ちません (これを使用して実行しようとしているようです)。

ほとんどの人は、環境ごとに異なるソース ファイルを作成し、ビルド環境 (ルールを作成しますか?) でそれらを切り替える方が良いと考えるでしょう。

于 2010-08-23T17:36:56.690 に答える