我正在使用增强序列化。我用: 编译-L/opt/local/lib -lboost_serialization -stdlib=libc++
,但有几个(不可搜索的)错误:
架构 x86_64 的未定义符号: “boost::archive::text_oarchive_impl::save(std::__1::basic_string, std::__1::allocator > const&)”,引用自: void boost::archive::save_access::save_primitive, std::__1::allocator > >(boost::archive::text_oarchive&, std::__1::basic_string, std::__1::allocator > const&) 在 main .o “boost::archive::basic_text_oprimitive > >::~basic_text_oprimitive()”,引用自: boost::archive::text_oarchive_impl::~text_oarchive_impl() 在 main.o “boost::archive::text_oarchive_impl::text_oarchive_impl(std::__1::basic_ostream >&, unsigned int)”,引用自: main.o 中的 boost::archive::text_oarchive::text_oarchive(std::__1::basic_ostream >&, unsigned int) ld:未找到架构 x86_64 的符号
我正在序列化一个std::vector<std::string>
:
boost::archive::text_oarchive oa(std::cout);
oa << tasks;
我的boost安装有问题吗?
boost 库是包含 32 位和 64 位机器代码的通用二进制文件(所以我猜这不是问题):
$ 文件 libboost_serialization.dylib libboost_serialization.dylib:具有 2 个架构的 Mach-O 通用二进制文件 libboost_serialization.dylib(用于 i386 架构):Mach-O 动态链接共享库 i386 libboost_serialization.dylib(用于架构 x86_64):Mach-O 64 位动态链接共享库 x86_64
sudo port install boost +universal
我在 Mac OS X 10.7 上安装了 boost 。