【问题标题】:libclang: error: clang-c/Index.h: No such file or directorylibclang:错误:clang-c/Index.h:没有这样的文件或目录
【发布时间】:2011-08-31 07:10:02
【问题描述】:

我试图使用 clang 来解析 c++ 代码,但我无法编译我的源代码,因为我无法找到 libclang 头文件。

我正在运行 ubuntu 10.04 并已从存储库中成功安装了 clang 和 llvm。

请告诉我在哪里可以找到要包含的文件。

我尝试运行的示例是:

    #include<clang-c/Index.h>

    int main(int argc, char *argv[]) {
    CXIndex Index = clang_createIndex(0, 0);
    CXTranslationUnit TU = clang_parseTranslationUnit(Index, 0,argv, argc, 0, 0, CXTranslationUnit_None);
    for (unsigned I = 0, N = clang_getNumDiagnostics(TU); I != N; ++I) {
    CXDiagnostic Diag = clang_getDiagnostic(TU, I);
    CXString String = clang_formatDiagnostic(Diag,
    clang_defaultDiagnosticDisplayOptions());
    fprintf(stderr, "%s\n", clang_getCString(String));
    clang_disposeString(String);
    }
    clang_disposeTranslationUnit(TU);
    clang_disposeIndex(Index);
    return 0;
    }

【问题讨论】:

  • 我认为 ubuntu 软件包没有必要的头文件和库来使用 libclang。您可能需要从源代码构建 llvm+clang。
  • 感谢班塔尔的指点。会尝试并尽快回复。
  • 是的,你的建议奏效了。谢谢。
  • 在 Fedora 上,我认为这将是 llvm-devel 的一部分,但我错过了 clang-devel

标签: c llvm-clang


【解决方案1】:

来自 ubuntu 10.04 http://packages.ubuntu.com/lucid/devel/clang 的包 clang-2.7 不包含头文件 clang-c/Index.h,也没有 libclang.so:

http://packages.ubuntu.com/lucid/i386/clang/filelist

llvm-dev 包也没有:http://packages.ubuntu.com/lucid/i386/llvm-dev/filelist

因此,ubuntu 10.04 没有包含 libclang 或任何与 clang 开发相关的 clang 包。

正如 Banthar 建议的那样,您应该使用来自 llvm 站点的 clang,或者从源代码构建(在 ubuntu 中很容易)或打包为二进制包。

【讨论】:

  • 在 Ubuntu 13.10 64 位桌面上,我安装了libclang-3.4-dev。它提供/usr/lib/llvm-3.4/include/clang-c/Index.h
  • @AdamMonsen,感谢您提供更多信息!在较新的 ubuntus 中情况会更好。
【解决方案2】:

正如Adam Monsen 在对已接受答案的评论中所说,从 Ubuntu 13.10 开始,该文件由以下包提供:

libclang-3.4-dev

根据您的要求更改版本号。该文件位于

/usr/lib/llvm-3.4/include/clang-c/Index.h

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多