错误 LNK2001:无法解析的外部符号 __CxxFrameHandler4 和 __GSHandlerCheck_EH4

use*_*291 5 c++ cmake visual-studio-2017 visual-studio-2019

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

Clipper.lib(clipper.obj) :错误 LNK2001:无法解析的外部符号 __CxxFrameHandler4

Clipper.lib(clipper.obj) :错误 LNK2001:无法解析的外部符号 __GSHandlerCheck_EH4

原因

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


尝试过

我正在使用以下命令构建库:

cd lib/src/clipper
mkdir build
cd build/
cmake ..
cmake --build . --config Debug
cmake --build . --config Release
Run Code Online (Sandbox Code Playgroud)

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

CMake日志截图

问题

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

use*_*291 1

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

cmake .. 
Run Code Online (Sandbox Code Playgroud)

和:

cmake  -G "Visual Studio 15 2017 Win64" ..
Run Code Online (Sandbox Code Playgroud)