我正在構建一個需要boost的text_oarchive函數的項目,並且在嘗試構建它時收到鏈接器錯誤。鏈接錯誤與boost :: archive :: test_oarchive使用gcc OS X
我已經安裝了升壓1.55.0在OS X 10.9
我的編譯器的信息被報告爲: $ G ++ --version
配置有:前綴= /應用/ Xcode.app /目錄/ Developer/usr --with-gxx-include-dir =/usr/include/C++/4.2.1 Apple LLVM版本5.0(clang-500.2.79)(基於LLVM 3.3svn) 目標:x86_64- apple-darwin13.0.0 線程模型:posix
boost目錄報告中的bootstrap.log文件使用「達爾文」工具集「。 然而,從Eclipse的建築物時,被報道在構建輸出的末尾出現以下錯誤:
"boost::archive::detail::basic_oarchive::~basic_oarchive()", referenced from:
::archive::detail::common_oarchive<boost::archive::text_oarchive>::~common_oarchive() in msgQueProducer.o
"typeinfo for boost::archive::archive_exception", referenced from:
void boost::serialization::throw_exception<boost::archive::archive_exception> (boost::archive::archive_exception const&) in msgQueProducer.o
"typeinfo for boost::archive::detail::basic_oarchive", referenced from:
typeinfo for boost::archive::detail::common_oarchive<boost::archive::text_oarchive> in msgQueProducer.o
"vtable for boost::archive::archive_exception", referenced from:
boost::archive::archive_exception::archive_exception(boost::archive::archive_exception const&) in msgQueProducer.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [msgQueProducer] Error 1
時的代碼下面一行從項目中刪除該項目構建罰款:
boost::archive::text_oarchive oa(oss);
我想知道是否當我建立boost庫時,我應該指定一些體系結構參數(傳遞給./b2工具,如「./b2 toolset = darwin cxxflags =」 - arch i386「address-model = 64 architecture = x86階段「)。但是,我正在構建另一個用於進程間消息傳遞的boost函數,並且該項目可以在包含它的情況下正常生成。
升壓工程包括我使用的是:
#include <boost/interprocess/ipc/message_queue.hpp>
#include <boost/archive/text_oarchive.hpp>
什麼我需要做的,我的OS X系統上使用boost :: text_oarchive的?
由於提前, 沃爾特
你在鏈接boost-serialization庫嗎? –
這就是需要的。我已經將-lboost_serialization添加到鏈接器路徑,現在它可以正確構建。謝謝! – Walt