Проблема включения заголовка Clang / LLVM (Ubuntu) - PullRequest
2 голосов
/ 15 августа 2011

Я работаю над тем, чтобы LLVM и clang были установлены с Ubuntu, и пытаюсь скомпилировать здесь некоторый учебный код - http://www.cs.bgu.ac.il/~mirskyil/CsWiki/Blogs/Post_Mirskyil_4c83cc1f85da2

У меня были некоторые проблемы при компиляции с использованием g ++, и я предположил бы, что этоэто связано с тем, что я не установил что-то правильно (я новичок в этом деле).

Когда я пытаюсь выполнить эту команду -

g++ tut.cpp -g -o tut.out \
`$LLVM/Debug+Asserts/bin/llvm-config --cxxflags` \
-I$LLVM/tools/clang/include/ \
-lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization \
-lclangCodeGen -lclangParse -lclangSema -lclangChecker -lclangAnalysis \
-lclangIndex -lclangRewrite -lclangAST -lclangLex -lclangBasic \
`$LLVM/Debug+Asserts/bin/llvm-config --ldflags --libs`

Я получаю следующие ошибки-

/home/rob/llvm/include/llvm/Support/DataTypes.h:45:3: error: #error "Must #define      __STDC_LIMIT_MACROS before #including System/DataTypes.h"

/home/rob/llvm/include/llvm/Support/DataTypes.h:49:3: error: #error "Must #define __STDC_CONSTANT_MACROS before " "#including System/DataTypes.h"

In file included from /llvm/tools/clang/include/clang/AST/Decl.h:17:0,
                 from /llvm/tools/clang/include/clang/AST/ASTContext.h:23,
                 from tut.cpp:3:
/llvm/tools/clang/include/clang/AST/APValue.h:18:29: fatal error: llvm/ADT/APSInt.h: No such file or directory
compilation terminated.

Я предполагаю, что первая ошибка в __STDC_LIMIT_MACROS заключается в том, что я не определил что-то в командной строке, но другая ошибка связана с включением файлов.Кажется, что код пытается заглянуть в 'llvm / APT / APSInt.h', который не существует, я могу вручную изменить эти пути для работы, но кажется, что я сделал что-то не так.

Если кто-нибудь и направит меня в правильном направлении, это будет с благодарностью!

Ответы [ 2 ]

0 голосов
/ 25 мая 2014

Я думаю, что сначала вы должны попытаться решить проблему с макросом __STDC_LIMIT_MACROS, Когда у меня появляется этот тип ошибки, это потому, что я забыл это:

llvm-config --cxxflags

Вы должны попытаться увидеть, вернет ли эта команда ожидаемое значение:

-I/usr/include  -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O3 -fomit-frame-pointer -fvisibility-inlines-hidden -fno-exceptions -fPIC -Woverloaded-virtual -Wcast-qual

Например.

0 голосов
/ 16 августа 2011

Переместите tut.cpp в конец cmdline, и все готово.

...