ブーストシリアル化を使用しています。私がしてコンパイル:-L/opt/local/lib -lboost_serialization -stdlib=libc++
が、いくつかの(ungooglable)エラーを得た:ブーストシリアル化を使用するときのリンカエラー
Undefined symbols for architecture x86_64: "boost::archive::text_oarchive_impl::save(std::__1::basic_string, std::__1::allocator > const&)", referenced from: void boost::archive::save_access::save_primitive, std::__1::allocator > >(boost::archive::text_oarchive&, std::__1::basic_string, std::__1::allocator > const&) in main.o "boost::archive::basic_text_oprimitive > >::~basic_text_oprimitive()", referenced from: boost::archive::text_oarchive_impl::~text_oarchive_impl() in main.o "boost::archive::text_oarchive_impl::text_oarchive_impl(std::__1::basic_ostream >&, unsigned int)", referenced from: boost::archive::text_oarchive::text_oarchive(std::__1::basic_ostream >&, unsigned int) in main.o ld: symbol(s) not found for architecture x86_64
私はstd::vector<std::string>
をシリアライズしています:
boost::archive::text_oarchive oa(std::cout);
oa << tasks;
は、ブーストの私のインストールに問題はありませんか?私はsudo port install boost +universal
を使用してブーストをインストール
$ file libboost_serialization.dylib libboost_serialization.dylib: Mach-O universal binary with 2 architectures libboost_serialization.dylib (for architecture i386): Mach-O dynamically linked shared library i386 libboost_serialization.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
:
ブーストライブラリは32ビットと64ビットの両方のマシンコードを含むユニバーサルバイナリです(そのためには、私は推測する問題ではありません) Mac OS X 10.7の場合。
たぶんブーストは、使用しているものとは異なるコンパイラで構築されたのですか?私は過去にマックポートと同様の問題を抱えていましたが、詳細を覚えるのはずっと前です。 – ergosys
シリアル化ライブラリをどのように使用しようとしているかを示す小さな例を投稿できますか?私はそれを使用していないが、私は実際のテストケースを持っていれば問題を追跡することができると確信している。 –