我正在尝试使用 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 ++命令编译完全相同的代码。