【问题标题】:Needs to compile the missing `detour 3.0` lib in Visual Studio需要在 Visual Studio 中编译缺少的 `detour 3.0` 库
【发布时间】:2021-02-20 23:46:56
【问题描述】:
我将在 Visual Studio 2013 或 Visual Studio 2019 中编译旧项目(Visual Studio 2012 平台-v110xp)。
它使用 boost 和 Microsoft detour 3.0 库。
但是detour 3.0 被意外删除了。
而现在我只能找到detour4.0。
但我收到这样的错误
如何获得detour 3.0 库?
【问题讨论】:
标签:
boost
visual-studio-2013
compiler-errors
visual-studio-2019
detours
【解决方案1】:
使用 VS 2015、VS 2017 或 VS 2019 构建的 C++ 静态库是“二进制兼容的”,但任何其他版本的 Visual C++ 都不是这样。例如,与 VS 2012 链接的静态库在与 VS 2013 代码链接时不一定能工作。见Microsoft Docs。
我不确切知道涉及哪些工具集,但这可能是导致链接问题的原因。主要是要确保所有的静态库和主可执行文件是由相同的编译器版本构建的。
请注意,DLL 及其导出库通常仅使用“C 样式”绑定,因此它们可以与多代编译器二进制兼容。
VS 2019 包括 v141_xp 平台工具集(即使用与 Windows XP / Windows Server 2003 兼容的 Windows 7.1A SDK 的 VS 2017 编译器)。