Использование заголовков LLVM при компиляции LLVM IR - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь скомпилировать C фрагмент кода в LLVM IR. Мне нужно #include соответствующие заголовочные файлы LLVM, например Module.h (#include "llvm / Module.h"). Для компиляции я использую:

c ++ -g prog. cpp llvm-config-10 --cxxflags --ldflags --libs core -o prog

Но это дает мне ошибку:

c ++ -g prog. cpp llvm-config-10 --cxxflags --ldflags --libs core -o prog prog. cpp: 1: 10: фатальная ошибка: Module.h: нет такого файла или каталога

Вывод команды llvm-config-10 --cxxflags равен

-I / usr / lib / llvm-10 / include ... et c

У меня есть заголовок Module.h в двух местах:

/ usr / include / llvm-10 / llvm / IR / Module.h

и

/ usr / lib / llvm-10 / include / llvm / IR / Module.h

Итак, почему не работает "-I / usr / lib / llvm-10 / include"?

Разве он не может найти заголовок Module.h в каталоге ... / llvm / IR?

Заранее спасибо!

1 Ответ

1 голос
/ 28 апреля 2020

Вместо #include "llvm/Module.h поставить #include "llvm/IR/Module.h. Также, если вы хотите скомпилировать код C в IR LLVM, вы можете использовать команду clang -S -emit-llvm source.c, которая создаст файл source.ll, содержащий IR LLVM.

...