链接boost内存映射文件

时间:2015-07-03 15:17:30

标签: c++ boost linker memory-mapped-files

我有一个程序,我从linux Debian开始,所以链接很容易。我所要做的只是命令行:

LIBS += -lboost_system -lboost_iostreams

现在我必须在Windows上编译相同的程序。我下载了升级版1.58,并执行了bootstrap然后bjam。这个编译了boost并创建了包含所有库的stage文件夹。

现在我使用了内存映射文件类boost::iostreams::mapped_file_source(),因此我收到了多个链接错误,我提到了这个错误:

FileCheck.obj:-1: error: LNK2019: unresolved external symbol "public: char const * __cdecl boost::iostreams::mapped_file_source::data(void)const " (?data@mapped_file_source@iostreams@boost@@QEBAPEBDXZ) referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl MD5FromFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?MD5FromFile@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV12@@Z)

我试图链接到这个提升。所以我添加了boost的路径和:

LIBS += -L"X:/Path/to/boost/boost_1_58_0/stage/lib"
LIBS += -llibboost_system-vc120-mt-1_58    -llibboost_iostreams-vc120-mt-1_58
LIBS += -llibboost_system-vc120-mt-gd-1_58 -llibboost_iostreams-vc120-mt-gd-1_58

但我仍然得到这个错误。现在我想指出编译器(VS2013)找到lib文件,但它显然是不够的。

我还想提一下,我也使用Boost :: ASIO和OpenSSL,但这些链接没有任何问题。

知道如何链接到提升内存映射文件吗?

感谢。

1 个答案:

答案 0 :(得分:1)

确定大约32或64位库版本?如果你在32中构建并且库中有64可以出现。