我正在针对我的 Visual C++ 项目使用通过 vcpkg 构建的多个库(例如 civet-web 和 prometheus-cpp)。当构建 x86 时一切都很完美,在 x64 中我收到一堆链接器错误:
错误 LNK2001:无法解析的外部符号 __CxxFrameHandler4
在线搜索对此符号/错误的所有引用都与特定项目有关,我找不到 __CxxFrameHandler4is这个错误突出显示了什么问题。我不知道这是 vcpkg 构建库的方式有问题,还是我的项目有问题,或者如何开始寻找解决方案。
我确实找到了这篇博客文章,但它是参考VS2019的预览,我找不到与之相关的任何设置:https://devblogs.microsoft.com/cppblog/making-cpp-exception-handling-smaller-x64/ https://devblogs.microsoft.com/cppblog/making-cpp-exception-handling-smaller-x64/
如果有人能解释这是什么意思,那将会有很大的帮助。
在尝试安装 cpr 并将其与 vcpkg 一起使用时,我遇到了同样的问题。我想在 VS2015 项目中使用 cpr 库。
Reason:我安装了VS2019。 vcpkg 使用最新版本的 Visual Studio 工具集。
解决:添加您自己的三元组或更改现有的方式,以使用您指定的工具集。添加在我的情况下不起作用,因此我更改了 vcpkg 中三元组文件夹中现有的“三元组”文件。我想让vcpkg使用VS2015(V140)附带的工具集
x86-windows.cmake 文件的内容
set(VCPKG_TARGET_ARCHITECTURE x86)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_PLATFORM_TOOLSET "v140")
set(VCPKG_DEP_INFO_OVERRIDE_VARS "v140")
x64-windows.cmake 文件的内容
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_PLATFORM_TOOLSET "v140")
set(VCPKG_DEP_INFO_OVERRIDE_VARS "v140")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)