链接提升内存映射文件
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 中可以出现。
我有一个程序是在 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 中可以出现。