【发布时间】: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
原因
根据this和that,错误可能是由于使用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