无法在 VS2017 上使用 cmake link libclang

Unable to link libclang with cmake on VS2017

不久前我写了一个代码生成程序用于我的 3D 游戏引擎。我在我的 cmake 文件中添加了一个目标,linked libclang,因为我正在使用它来解析代码,并且一切正常。最近我在我的项目中添加了另一个依赖项,它又依赖于 SDL2。

经过一番努力,我终于设法让它工作了,但代码生成项目突然无法编译,尽管我已经几个月没有碰过它了。它无法 link,并开始给出有关未定义符号的错误,即使我清楚地将 .lib 文件指定为 link 并为其提供了正确的路径。我项目的 Cmake 文件是 here.

我在 windows、生成器 VS2017 (x64)、平台工具集 LLVM 上使用 Cmake GUI。

非常感谢对此问题的任何见解。

更新:我得到的确切错误只是

1>C:\Program Files (x86)\LLVM\bin\lld-link.exe : error : undefined symbol: __imp_clang_getTranslationUnitCursor
1>>>> referenced by C:\Users\michi_000\Desktop\C++\SaturnEngine\CodeGen\Serialization\main.cpp:128
1>>>>               SerializationCodeGen.dir\Editor\main.obj:(?get_cursor@TranslationUnit@@QEAA?AUCXCursor@@XZ)

对于我调用的每个 libclang 函数。

问题已解决。问题是我的 clang 安装没有为 clang 提供导入库,而是链接了一个静态库。 headers 期望导入库导致它失败。我从 dll 生成了导入库,现在它工作正常。