В общем, нужен продвинутый парсер С-подобных языков. Слил исходники llvm и clang. Все это собрал и установил в отдельную папку (так на всякий случай, что бы систему не трогало). Создал тестовый файлик и пытаюсь его собрать, но при линковке всегда «undefined reference to ...»
В общем собрал так.
../llvm/configure --prefix=$HOME/LLVM_build/LLVM_install --enable-optimized
make -j8
install
Теперь пытаюсь собрать вот такой код
#include "clang/Basic/LangOptions.h"
#include "llvm/ADT/SmallVector.h"
int main(int argc, char const *argv[])
{
llvm::SmallVector<int, 5> vec;
vec.resize(50);
clang::LangOptions opts;
return 0;
}
Сборка
g++ `./llvm-config --cxxflags --ldflags` -Llib/ -Wl,--start-group `./llvm-config --libs` -lclangBasic -Wl,--end-group test.cpp
/tmp/ccIDe3Ge.o: In function `main':
tutorial1.cpp:(.text.startup+0x46): undefined reference to `llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long)'
tutorial1.cpp:(.text.startup+0x123): undefined reference to `clang::LangOptions::LangOptions()'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
Есть какие идеи? Заранее спасибо