私が取り組んでいるプロジェクトの Boost::Serialization ライブラリを試してみたかったのです。また、Linux でのプログラミングにも慣れようとしています。デフォルトの場所にブーストを設定しました。ここで提供されているテスト ファイルを、提供されているコマンド ライン引数を使用してコンパイルしてみましたが、問題なく動作しました。この例では、.a ファイルを使用しています。
次にシリアライゼーションのページに行き、シリアライゼーションのデモの 1 つを実行してみました。ファイル名を交換し、libboost_regex.a の代わりに libboost_serialization.a にリンクしたことを除いて、基本的に同じコマンドを実行しましたが、多くのエラーが発生しました。さまざまなオプションを試してディレクトリを再確認した後、.a を .so ファイルに置き換えることで、最終的に機能するようになりました。
参考までに、最終的に私にとってうまくいったのはこれでした:
g++ /usr/local/lib/libboost_serialization.so sertest.cpp -o sertest
1 つの例では .a ファイルに対してリンクし、別の例では .so に対してリンクしなければならなかったのはなぜですか?