使用g ++进行未定义的引用编译

时间:2018-01-25 15:17:16

标签: c++ g++ undefined-reference libclang

我正在尝试使用 Windows中的 libclang 创建一个C / C ++解析器。 我正在使用MinGW 6.3.0。

这是我用来编译文件的代码行。

g++ -I../clang/include/ main.cpp -L../clang/lib -llibclang -o cdeep

文件夹结构:

-clang
  -include
    -clang-c
      -Index.h
      -etc
    -llvm-c
  -lib
    -libclang.lib
    -etc
-src
  -main.cpp

main.cpp 中的代码:

#include <iostream>
#include <clang-c/Index.h>
using namespace std;

int main()
{
  CXIndex index = clang_createIndex(0, 0);
  CXTranslationUnit unit = clang_parseTranslationUnit(
    index,
    "main.cpp", nullptr, 0,
    nullptr, 0,
    CXTranslationUnit_None);
  if (unit == nullptr)
  {
    cerr << "Unable to parse translation unit. Quitting." << endl;
    exit(-1);
  }

  clang_disposeTranslationUnit(unit);
  clang_disposeIndex(index);
}

错误:

g++ -I../clang/include/ main.cpp -L../clang/lib -llibclang -o cdeep
C:\Users\ineeve\AppData\Local\Temp\ccLfSBTa.o:main.cpp:(.text+0x26): undefined reference to `clang_createIndex'
C:\Users\ineeve\AppData\Local\Temp\ccLfSBTa.o:main.cpp:(.text+0x64): undefined reference to `clang_parseTranslationUnit'
C:\Users\ineeve\AppData\Local\Temp\ccLfSBTa.o:main.cpp:(.text+0xa9): undefined reference to `clang_disposeTranslationUnit'
C:\Users\ineeve\AppData\Local\Temp\ccLfSBTa.o:main.cpp:(.text+0xb4): undefined reference to `clang_disposeIndex'
collect2.exe: error: ld returned 1 exit status

如果我不使用-llibclang参数,我会得到同样的错误。

这个问题并不重复,因为我的朋友可以使用完全相同的g ++命令编译完全相同的代码。

0 个答案:

没有答案