Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;Boost-如何设置它以便在iOS和Android中使用_C++_Ios_Xcode_C++11_Boost - Fatal编程技术网

C++ C++;Boost-如何设置它以便在iOS和Android中使用

C++ C++;Boost-如何设置它以便在iOS和Android中使用,c++,ios,xcode,c++11,boost,C++,Ios,Xcode,C++11,Boost,我想在我的iOS/Android游戏(cocos2d-x游戏引擎)中使用boost::serialization。我主要使用Xcode,并通过脚本为Android进行编译 我只是尝试将整个boost文件夹(所有标题)包含到我的Xcode项目中,然后运行一个非常简单的序列化示例。虽然这会导致链接器错误,但链接器无法找到某些内容: > Undefined symbols for architecture x86_64: > "boost::archive::archive_excep

我想在我的iOS/Android游戏(cocos2d-x游戏引擎)中使用boost::serialization。我主要使用Xcode,并通过脚本为Android进行编译

我只是尝试将整个boost文件夹(所有标题)包含到我的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>
架构x86_64的未定义符号: >“boost::archive::archive\u exception::archive\u exception”(boost::archive::archive\u exception::exception\u代码, >字符常量*,字符常量*)”,引用自: >void boost::archive::basic_text_oprimitive>::save_impl(unsigned int >Test.o中的常量&,mpl::bool&) >void boost::archive::basic\u text\u oprimitive >>::save_impl(boost::archive::object_id_type) >Test.o中的常量&,mpl::bool&) >void boost::archive::basic\u text\u oprimitive >>::save_impl(boost::archive::object_reference_type) >Test.o中的常量&,mpl::bool&) >void boost::archive::basic\u text\u oprimitive >>::save_impl(boost::archive::class_id_type) >Test.o中的常量&,mpl::bool&) >void boost::archive::basic\u text\u oprimitive >>::保存\u impl 等等

Xcode中的语言方言设置为
C++11[-std=C++11]

是否有可能仅仅从源代码构建boost所需的部分?我相信这将导致最小的二进制大小和最小的麻烦,但不幸的是,它甚至没有编译

对于我们的应用程序来说,包含boost库不会使二进制大小增加很多,这一点非常重要


我需要做什么才能使boost::serialization正常工作?

我已经使用了boost for cocos2d-x,它对iOS和android都非常有效。 在不增加二进制大小和不太麻烦的情况下,最简单的方法是将整个boost文件夹(包含所有.hpp文件和子文件夹的文件夹)放在以下路径中:

~cocos2d-x-project-path/cocos2d/cocos/boost

现在,您必须在Xcode中包含boost路径,如下所示: 后藤

项目设置->生成设置->搜索路径->标题搜索路径

并添加路径:
$(SRCROOT)/../cocos2d/cocos/boost
,如下图所示:


要使用boost序列化,您需要为每个目标和体系结构构建boost库,然后针对它们进行链接。在谷歌上搜索“ios的build boost”。祝你好运。这里不可能只包含标题?请看一下boost序列化文档。它可能支持将cpp文件直接包含到您的源代码中,而不是构建一个库。我想使用boost::serialization之类的东西,但它似乎不能只处理头。你用它成功了吗?