Я использую boost serialization. Я скомпилировал с помощью: -L/opt/local/lib -lboost_serialization -stdlib=libc++, но получил несколько (неустранимых) ошибок:
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;
Есть ли проблема с моей установкой boost?
Библиотеки ускорения - это универсальные бинарные файлы, содержащие как 32-битный, так и 64-разрядный машинный код (так что не проблема, я думаю):
$ 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
Я установил boost с помощью sudo port install boost +universal в Mac OS X 10.7.