Ошибки компоновщика при использовании ускоренной сериализации

Я использую ускоренную сериализацию.Я скомпилировал с помощью: -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 :

boost::archive::text_oarchive oa(std::cout);
oa << tasks;

Есть ли проблема с моей установкой boost?


Библиотеки boost - это универсальные двоичные файлы, содержащие как 32-битный, так и 64-битный машинный код (так что, я думаю, проблема не в этом):

 $ файл libboost_serialization.dylib
libboost_serialization.dylib: универсальный двоичный файл Mach-O с двумя архитектурами
libboost_serialization.dylib (для архитектуры i386): динамически подключаемая разделяемая библиотека Mach-O i386
libboost_serialization.dylib (для архитектуры x86_64): 64-разрядная динамически подключаемая разделяемая библиотека Mach-O x86_64

Я установил boost с помощью sudo port install boost + universal в Mac OS X 10.7.

13
задан 7 January 2012 в 21:22
поделиться