7

Scala2.10.0-M3で利用可能なScalaIDEプラグインを使用してEclipse3.7.2で(Scala)マクロをコンパイルしようとしていますが、次のエラーが発生しています。

「マクロ実装が見つかりません:XXXXX(その最も一般的な理由は、マクロ実装を定義するのと同じコンパイル実行でマクロ実装を使用できないことです)プログラムの残りの部分と一緒にマクロ実装を定義する必要がある場合は、2フェーズを検討してください第1フェーズの出力を指す第2フェーズの-Xmacro-fallback-classpathを使用したコンパイル」

単純なエディターとターミナル(エラーメッセージの直後)でそれを回避する方法はすでに知っていますが、Eclipseでデュアルフェーズタスクを実行することは可能ですか?

4

3 に答える 3

9

既存のプロジェクトにリンクするマクロプロジェクトを作成する方法:

  • たとえば、という名前のscalaプロジェクトを作成し、マクロを含むProjectMacrosたとえばという名前のファイルをその中に入れます。Macros.scalaマクロしかないので、このプロジェクトは問題なくコンパイルできるはずです。
  • 既存のscalaプロジェクトを右クリックし、[プロパティ]を選択します。[プロパティ]ウィンドウが開きます。
  • Java Build Pathセクション内 :
    • タブの下にProjects、を追加しProjectMacrosます。
    • タブの下でLibraries、をクリックAdd Class Folderし、ディレクトリを選択しますProjectMacros/bin
  • Project Referencesセクションで、チェックしてくださいProjectMacros

これで、既存のプロジェクトにインポートを追加した後import Macros._、マクロ関数とアノテーションを使用できるようになります。

于 2012-10-24T08:33:07.047 に答える
3

まあ、2つの異なるプロジェクトでマクロの実装とマクロの呼び出しを分離する(そしてプロジェクト参照で遊ぶ)ことで問題が解決するようです。とにかく、Scala-IDEプラグインはScala 2.10-M4のバージョン(マクロサポートの観点から)で著しく改善されているので、更新することをお勧めします。

于 2012-06-26T18:09:12.033 に答える
1

おそらくAntをビルドに使用できますが、ターミナルでこれをすでに達成していると言っているので、スクリプトを作成し、カスタムビルダーを使用して実行する方が簡単だと思います(プロジェクトのプロパティに移動し、[ビルダー]->[新規...]をクリックします。 ->プログラムしてから、スクリプトを実行するように設定します。

于 2012-05-16T21:35:34.337 に答える