#c #parsing #clang
#c #синтаксический анализ #clang
Вопрос:
Я пишу программу на C , в которой мне нужно иметь возможность преобразовывать код C в AST, выполнять некоторые операции над ним, а затем преобразовывать его обратно в строковое представление. Почти на все подобные вопросы, которые я читал, ответ «использовать clang».
Однако, согласно http://amnoid.de/tmp/clangtut/tut.html , флаг -fno-rtti
, по-видимому, должен быть предоставлен при компиляции кода, использующего clang, но я использую такие функции, как виртуальные функции и объекты с понижающим преобразованием, используя dynamic_cast
в моем собственном коде. Есть ли еще способ использовать clang или мне нужно прибегнуть к другой библиотеке?
Ответ №1:
Сам Clang должен быть скомпилирован с -fno-rtti
, но я не думаю, что есть какие-либо требования для -fno-rtti
, когда вы используете clang для компиляции (или просто сборки AST из) другого кода.
Ответ №2:
Либо перекомпилируйте Clang с включенным RTTI, либо создайте его как разделяемую библиотеку (хотя в этом я не совсем уверен).