【问题标题】:Unable to link libclang with cmake on VS2017无法在 VS2017 上将 libclang 与 cmake 链接
【发布时间】:2019-09-20 18:04:51
【问题描述】:

不久前,我编写了一个代码生成程序,用于我的 3D 游戏引擎。我在我的 cmake 文件中添加了一个目标,将 libclang 与它链接起来,因为我正在使用它来解析代码,并且一切正常。最近我在我的项目中添加了另一个依赖项,它又依赖于 SDL2。经过一番努力,我终于设法让它工作,但突然代码生成项目将不再编译,即使我实际上几个月都没有碰过它。它无法链接,并开始给出有关未定义符号的错误,即使我明确指定要链接到的 .lib 文件并为其提供正确的路径。我项目的 Cmake 文件是 here

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

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

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

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 函数。

【问题讨论】:

  • 请编辑您的问题帖子以包含您看到的特定错误。

标签: c++ cmake linker llvm libclang


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 2021-02-13
    相关资源
    最近更新 更多