【问题标题】:error LNK2001: unresolved external symbol __CxxFrameHandler4 and __GSHandlerCheck_EH4错误 LNK2001:未解析的外部符号 __CxxFrameHandler4 和 __GSHandlerCheck_EH4
【发布时间】:2021-05-14 23:28:41
【问题描述】:

我正在尝试构建一个库并将其链接到一个应用程序。库构建很好,但链接到应用程序会引发以下错误:

clipper.lib(clipper.obj) : error LNK2001: unresolved external symbol __CxxFrameHandler4

clipper.lib(clipper.obj) : error LNK2001: unresolved external symbol __GSHandlerCheck_EH4

原因

根据thisthat,错误可能是由于使用VS 2019工具集构建lib,但应用程序使用的是VS 2017工具集。


试过

我正在使用这些命令构建库:

cd lib/src/clipper
mkdir build
cd build/
cmake ..
cmake --build . --config Debug
cmake --build . --config Release

即使在 VS 2017 命令提示符下,CMake 也会为 VS 2019 构建库:

问题

强制 CMake 为 VS 2017 而不是 2019 构建的最简单/最快的方法是什么?

【问题讨论】:

  • 只需将正确的CMake generator 传递给cmake:-G"Visual Studio 15 2017"
  • @Tsyvarev 您的建议通过将cmake .. 替换为cmake -G "Visual Studio 15 2017 Win64" .. 解决了错误

标签: c++ cmake visual-studio-2017 visual-studio-2019


【解决方案1】:

正如@Tsyvarev 所评论的,错误通过替换得到解决

cmake .. 

与:

cmake  -G "Visual Studio 15 2017 Win64" ..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-03
    • 2014-09-27
    • 2018-08-14
    • 2018-08-24
    • 2020-08-21
    • 2016-09-04
    相关资源
    最近更新 更多