1

私は OMNeT++ を初めて使用するので、boost フレームワークに含まれているシリアライゼーション ライブラリを使用したいと考えています。ただし、使用しようとすると、次のような非常に多くのエラーが発生します。

Description    Resource    Path    Location    Type
undefined reference to `boost::archive::archive_exception::~archive_exception()'
OmCCN line 36, external location: /home/alexander/UniBE/BT/simulator/boost-compiledLibs
/include/boost/serialization/throw_exception.hpp    C/C++ Problem

. 問題は、OMNeT でコンパイル済みのライブラリをまだリンクしていないことだと思います。私はmakefileを見てきましたが、makemakeによって自動的に生成されるため、そこにある変更は価値がありません。さらに、プロジェクト > プロパティ > OMNeT++ IDE のメニュー項目「makemake」にアクセスしようとすると、エラーがスローされます (現在表示されているページには無効な値が含まれています)。

エラーの原因や、コンパイルされたライブラリを正しくリンクする方法について、ヒントを教えてもらえますか?

どんなヒントでも歓迎です!

乾杯アレックス

4

1 に答える 1

1

まず、ライブラリ ファイルを取得する必要があります。

たとえば、Ubuntu では、libboost1.46-dev と libboost-serialization1.46-dev の 2 つのパッケージをインストールする必要があります。ヘッダー ファイルは usr/include/boost にインストールされ、ライブラリ ファイルは usr/lib にインストールされます。

シリアル化ライブラリをプログラムにリンクするには:

プロジェクトを右クリックし、[プロパティ] をクリックします。次に、OMNET++ > Makemake に移動します。

[リンク] タブを見つけて、[リンクする追加のオブジェクト: (ワイルドカード、...]セクション) で、シリアル化ライブラリへのパスを指定します (/usr/lib/libboost_serialization-mt.a など)。

于 2012-09-11T21:25:43.520 に答える