1

私は既に Veins v4a2 を正常にインストールしてテストしました (RSUexample が含まれています)。ITS-G5 アプリケーション層を静脈に追加するために、例を実行しようとしたときに「動脈」を使用しようとしましたが、次のようなエラーがスローされました。

ネットワーク設定中のモジュール (cModule) RSUExampleScenario (id=1) のエラー: クラス "Veins::ObstacleControl" が見つかりません おそらくそのコードがリンクされていないか、クラスが > に登録されていないかRegister_Class()、またはモジュールとチャンネル、 > Define_Module()/ Define_Channel().

私が従った手順は次のとおりです。

  1. Vanetza (および必要なモジュール) をダウンロードします。
  2. エラーなしで Vanetza をビルドする
  3. Artery をダウンロード
  4. エラーなしで Vanetza と同じように動脈を構築する
  5. 「動脈」フォルダーとファイル (examples、src、tests、Makefile、configure...) を Veins フォルダーにコピーして、ファイルを上書きします。
  6. 静脈のビルドは正しく行われますが、両方 (動脈と静脈) の例の実行は、示されたエラーで失敗します。

実際、Veins コードを使用せずに、Artery または RSU の例を Artery コードから直接実行しようとすると、同じエラーが発生します (Artery コードにはすでに Veins が含まれているようです)。

誰もこの問題に直面したことがありますか?

4

1 に答える 1

2

まず第一に、あなたの仮定が正しいので、Artery を Veins にコピーしてファイルを上書きする必要はありません。Artery は Veins に基づいて構築されたアドオンであるため、Artery のリポジトリには完全な Veins ソースが含まれています。エラー メッセージは実際には少し誤解を招きますが、完全な出力ログをよく見ると、コンパイルされたバイナリで実際に欠落しているシンボルを示す未定義の参照に関する行が見つかる可能性があります。これは多くの場合、デバッグ モードで Vanetza をビルドし、リリース モードで Artery をビルドすること、またはその逆が原因です。

于 2016-03-11T18:14:31.220 に答える