부스트 직렬화를 사용하고 있습니다. 나는 컴파일 : -L/opt/local/lib -lboost_serialization -stdlib=libc++
,하지만 몇 가지 (ungooglable) 오류 가지고 :부스트 직렬화를 사용할 때의 링커 오류
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;
부스트의 내 설치에 문제가 있습니까? 내가 sudo port install boost +universal
를 사용하여 부스트를 설치
$ 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
:
부스트 라이브러리는 32 비트 및 64 비트 컴퓨터 코드를 포함하는 범용 바이너리이다 (그래서 내가 추측 문제가되지 않습니다) Mac OS X 10.7에서.
어쩌면 부스트 사용하는 것보다 다른 컴파일러로 만들어진? 나는 과거에 맥 포트와 비슷한 문제를 가지고 있었지만 너무 오래 전에 세부 사항을 기억하고있다. – ergosys
직렬화 라이브러리 사용 방법을 보여주는 작은 예제를 게시 할 수 있습니까? 나는 그것을 사용하지는 않았지만, 일단 작동하는 테스트 케이스가 생기면 문제를 추적 할 수 있다고 확신한다. (in : 문제를 보여준다.) –