为Visual Studio 2017构建升级1.64

Yev*_*hii 2 c++ boost visual-studio-2017

我不能在VS2017中使用boost 1.64库.在这里编译如下:

b2 toolset=msvc-14.1 --build-dir=.x86 --stagedir=stage_x86
Run Code Online (Sandbox Code Playgroud)

在工作室我得到这样的错误:

Error   unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAABVerror_category@12@XZ)
Run Code Online (Sandbox Code Playgroud)

我现在不知道该怎么办.我试着编译64位并使用它. - >有相应的错误.好.我这样编译:

b2
Run Code Online (Sandbox Code Playgroud)

完全相同的错误.

Error   unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAABVerror_category@12@XZ)
Run Code Online (Sandbox Code Playgroud)

所有项目链接器选项:

/OUT:"E:\Yandex.Disk\Projects\OS\Release\OS.exe" /MANIFEST /LTCG:incremental /NXCOMPAT /PDB:"E:\Yandex.Disk\Projects\OS\Release\OS.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG:FULL /MACHINE:X86 /OPT:REF /SAFESEH /INCREMENTAL:NO /PGD:"E:\Yandex.Disk\Projects\OS\Release\OS.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Release\OS.exe.intermediate.manifest" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"E:\boost_1_64_0\stage_x86\lib" /TLBID:1 
Run Code Online (Sandbox Code Playgroud)

Ste*_*end 6

据我了解,微软为简化VS2017的部署而进行的更改已经引起了Boost Build如何检测构建Boost所需工具集的严重问题.我猜测这是阻止官方支持和/或造成问题的原因.截至2017年4月,显然在检测VS2017时仍然存在问题 - 例如参见https://github.com/boostorg/build/issues/157http://boost.2283326.n4.nabble.com/VS2017- release-vswhere-exe-td4693141.html#a4693313.微软知道并且似乎致力于解决这个问题.请参阅https://lists.boost.org/Archives/boost/2017/04/234552.php.

在线信息表明使用Powershell存在工作轮次,但至少可以说是非常重要的.建议任何等待此事的人都按照讨论进行讨论,并强烈要求微软为Boost 1.65.0解决这个问题.我还没有亲自尝试这个(notNeeded & notEnoughTime),但我对一个解决方案非常感兴趣,如果看起来这个问题得到了妥善解决,我会回来更新.