链接提升内存映射文件

Linking boost memory mapped files

我有一个程序是在 linux Debian 上启动的,所以 link 在那里很容易。我所要做的就是命令行:

LIBS += -lboost_system -lboost_iostreams

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

现在我正在使用内存映射文件 class boost::iostreams::mapped_file_source(),所以我遇到了多个 linking 错误,我举了一个例子:

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)

我试图 link 对此进行提升。所以我添加了 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,但是这些 link 没有问题。

知道如何 link 提升内存映射文件吗?

谢谢。

确定是 32 位还是 64 位库版本?如果你在 32 中构建并且库在 64 中可以出现。