我有一个程序,我从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,但这些链接没有任何问题。
知道如何链接到提升内存映射文件吗?
感谢。
答案 0 :(得分:1)
确定大约32或64位库版本?如果你在32中构建并且库中有64可以出现。