iOS/Androidゲーム(cocos2d-xゲームエンジン)でboost :: serializationを使用します。私は主にXcodeやAndroid用のスクリプトを使ってコンパイルしています。C++ Boost - iOSとAndroid用に設定する方法
私はXcodeプロジェクトにブーストフォルダ全体(すべてのヘッダー)を含めてみましたが、非常に簡単なシリアライゼーションサンプルを実行しました。
> Undefined symbols for architecture x86_64:
> "boost::archive::archive_exception::archive_exception(boost::archive::archive_exception::exception_code,
> char const*, char const*)", referenced from:
> void boost::archive::basic_text_oprimitive<std::__1::basic_ostream<char,
> std::__1::char_traits<char> > >::save_impl<unsigned int>(unsigned int
> const&, mpl_::bool_<false>&) in Test.o
> void boost::archive::basic_text_oprimitive<std::__1::basic_ostream<char,
> std::__1::char_traits<char> >
> >::save_impl<boost::archive::object_id_type>(boost::archive::object_id_type
> const&, mpl_::bool_<false>&) in Test.o
> void boost::archive::basic_text_oprimitive<std::__1::basic_ostream<char,
> std::__1::char_traits<char> >
> >::save_impl<boost::archive::object_reference_type>(boost::archive::object_reference_type
> const&, mpl_::bool_<false>&) in Test.o
> void boost::archive::basic_text_oprimitive<std::__1::basic_ostream<char,
> std::__1::char_traits<char> >
> >::save_impl<boost::archive::class_id_type>(boost::archive::class_id_type
> const&, mpl_::bool_<false>&) in Test.o
> void boost::archive::basic_text_oprimitive<std::__1::basic_ostream<char,
> std::__1::char_traits<char> >
> >::save_impl<boost::archive::class_id_reference_type>
など:これはリンカエラーが生じたものの、リンカは、特定のものを見つけることができません。
Xcodeで言語の方言がC++11 [-std=c++11]
に設定されている、それだけでソースからブーストの必要な部品を構築することは可能ですか?私は、これが最小のバイナリサイズと最小の混乱を招くと信じていましたが、残念ながらコンパイルしていません。
私たちのアプリケーションでは、ブーストライブラリを含めてもバイナリサイズが大きく増えないことが非常に重要です。
boost :: serializationを行うには何が必要ですか?
、あなたはそれぞれのターゲットとアーキテクチャのためのブーストライブラリを構築し、それらをリンクする必要があります。 "iosのためのビルドブースト"のためのGoogle検索を行います。がんばろう。 –
ここにヘッダーのみを含めることはできません。 – keyboard
は、ブーストシリアル化のドキュメントを見てください。これは、ライブラリを構築するのではなく、ソースにcppファイルを直接インクルードすることをサポートするかもしれません。 –