Tôi đang sử dụng tính năng tuần tự hóa tăng cường. Tôi biên soạn với: -L/opt/local/lib -lboost_serialization -stdlib=libc++
, nhưng có một số (ungooglable) lỗi:Lỗi trình liên kết khi sử dụng tuần tự tăng cường
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
Tôi serializing một std::vector<std::string>
:
boost::archive::text_oarchive oa(std::cout);
oa << tasks;
Có một vấn đề với cài đặt của tôi tăng?
Các thư viện tăng là mã nhị phân phổ chứa cả 32-bit và 64-bit mã máy (vì vậy đó không phải là vấn đề tôi đoán):
$ 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
Tôi đã cài đặt tăng sử dụng sudo port install boost +universal
trên Mac OS X 10.7.
lẽ tăng được xây dựng với trình biên dịch khác với những gì bạn đang sử dụng? Tôi đã có vấn đề tương tự với macports trong quá khứ, nhưng quá lâu trước đây để nhớ các chi tiết. – ergosys
Bạn có thể đăng một ví dụ nhỏ cho thấy cách bạn đang cố gắng sử dụng thư viện tuần tự hóa không? Tôi đã không sử dụng nó nhưng tôi khá tự tin rằng tôi có thể theo dõi vấn đề một khi tôi có một trường hợp thử nghiệm làm việc ... (làm việc như trong: cho thấy vấn đề). –