building boost 1.64 for Visual Studio 2017

building boost 1.64 for Visual Studio 2017

本文关键字:Visual Studio 2017 for boost building      更新时间:2023-10-16

i不能在VS2017中使用Boost 1.64库。像这样编译:

b2 toolset=msvc-14.1 --build-dir=.x86 --stagedir=stage_x86

在录音室里我遇到了这样的错误:

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

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

b2

完全相同的错误。

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

所有项目链接器选项:

/OUT:"E:Yandex.DiskProjectsOSReleaseOS.exe" /MANIFEST /LTCG:incremental /NXCOMPAT /PDB:"E:Yandex.DiskProjectsOSReleaseOS.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.DiskProjectsOSReleaseOS.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"ReleaseOS.exe.intermediate.manifest" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"E:boost_1_64_0stage_x86lib" /TLBID:1 

我的理解是,Microsoft的变化简化VS2017的部署已经引起了严重的问题,即Boost Build如何检测构建增强所需的工具集。我的猜测是,这是阻止官方支持和/或引起问题的原因。截至2017年4月,很明显,检测VS2017的问题仍然存在 - 参见例如https://github.com/boostorg/build/issues/issues/157和http://boost.2283326.n4.n44.nabble.com/vs2017--vs2017--vs2017--c.com/VS2017--VS2017---VS2017---ERRelease-VSWHERE-EXE-TD4693141.HTML#A4693313。一线希望是微软意识到,似乎致力于解决这一问题。请参阅https://lists.boost.org/archives/boost/2017/04/234552.php。

在线信息建议使用PowerShell存在回合,但至少可以说是不平凡的。建议任何等待此讨论的人,以及Microsoft的语音紧迫性,以将其定为增强1.65.0。我个人还没有尝试此操作(notNeeded & notEnoughTime(,但是我对解决方案非常感兴趣,如果看起来正确解决,我将重新更新。