2016-04-01 11 views
-2

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を行うには何が必要ですか?

+0

、あなたはそれぞれのターゲットとアーキテクチャのためのブーストライブラリを構築し、それらをリンクする必要があります。 "iosのためのビルドブースト"のためのGoogle検索を行います。がんばろう。 –

+0

ここにヘッダーのみを含めることはできません。 – keyboard

+0

は、ブーストシリアル化のドキュメントを見てください。これは、ライブラリを構築するのではなく、ソースにcppファイルを直接インクルードすることをサポートするかもしれません。 –

答えて

1

私はcocos2d-xのためにboostを使用しました。その作業は、iOSとAndroidの両方で非常に有効です。バイナリサイズを大きくすることなく、そして多くの手間をかけずにそれを行うための最も簡単な方法は、次のパス内の全ブーストフォルダ(すべての.HPPファイルを持っている1、サブフォルダ)を置くことです :

〜cocos2d- X-プロジェクトパス/ cocos2d /ココス/

を後押し今、あなたは、このようにXcodeでのブーストのパスを含める必要があります: 後藤

プロジェクト設定] - > [設定]を構築します>検索Paths- >ヘッダー検索パス

とパスを追加します。下の画像のように$(SRCROOT)/../cocos2d/cocos/boost:ブーストのシリアル化を使用する

enter image description here

+0

これは私が試したものですが、動作しません。私はboost :: serializationのようなものを使いたいと思っています。それはヘッダーだけではうまくいかないようです。それを使って成功しましたか? – keyboard

関連する問題