staram się postępować zgodnie z samouczka w http://gnuu.org/2009/09/18/writing-your-own-toy-compiler/5/ (przy użyciu flex, bison i LLVM), ale podczas wpisywania linię#error "Must #define __STDC_LIMIT_MACROS przed #including support/DataTypes.h"
g ++ - o parser parser.cpp tokens.cpp main.cpp
otrzymuję następujące błędy:
In file included from /usr/local/include/llvm/Support/PointerLikeTypeTraits.h:18:0,
from /usr/local/include/llvm/ADT/PointerIntPair.h:17,
from /usr/local/include/llvm/IR/Use.h:28,
from /usr/local/include/llvm/IR/Value.h:17,
from node.h:3,
from parser.y:2:
/usr/local/include/llvm/Support/DataTypes.h:48:3: erreur: #error "Must #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h"
/usr/local/include/llvm/Support/DataTypes.h:52:3: erreur: #error "Must #define __STDC_CONSTANT_MACROS before " "#including Support/DataTypes.h"
parser.y: In function ‘void yyerror(const char*)’:
parser.y:6:58: erreur: ‘printf’ was not declared in this scope
In file included from /usr/local/include/llvm/Support/PointerLikeTypeTraits.h:18:0,
from /usr/local/include/llvm/ADT/PointerIntPair.h:17,
from /usr/local/include/llvm/IR/Use.h:28,
from /usr/local/include/llvm/IR/Value.h:17,
from node.h:3,
from tokens.l:3:
/usr/local/include/llvm/Support/DataTypes.h:48:3: erreur: #error "Must #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h"
/usr/local/include/llvm/Support/DataTypes.h:52:3: erreur: #error "Must #define __STDC_CONSTANT_MACROS before " "#including Support/DataTypes.h"
In file included from /usr/local/include/llvm/Support/PointerLikeTypeTraits.h:18:0,
from /usr/local/include/llvm/ADT/PointerIntPair.h:17,
from /usr/local/include/llvm/IR/Use.h:28,
from /usr/local/include/llvm/IR/Value.h:17,
from node.h:3,
from main.cpp:2:
/usr/local/include/llvm/Support/DataTypes.h:48:3: erreur: #error "Must #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h"
/usr/local/include/llvm/Support/DataTypes.h:52:3: erreur: #error "Must #define __STDC_CONSTANT_MACROS before " "#including Support/DataTypes.h"
Widziałem wiele stanowisk jak to w internecie, a najbardziej o f odpowiedzi obejmują definiowanie tych stałych w wierszu poleceń lub przy użyciu Makefile gcc.
Nie rozumiem, jak to zrobić, czy ktoś może mi pomóc?
Świetnie, dziękuję! –
@Oak Niestety nadal otrzymuję błędy po dodaniu tej opcji wiersza poleceń. Jakieś wskazówki? Jestem na OSX. – gideon
@guideon przepraszam, nie. Lepiej zapytaj na [LLVM-dev] (http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev). – Oak