我正在尝试将C代码片段编译为LLVM IR。我需要#include适当的LLVM头文件,例如Module.h(#include“ llvm / Module.h”)。对于编译,我使用:
c ++ -g prog.cppllvm-config-10 --cxxflags --ldflags --libs core
-o prog
但是那给了我一个错误:
c ++ -g prog.cppllvm-config-10 --cxxflags --ldflags --libs core
-o progprog.cpp:1:10:致命错误:Module.h:无此类文件或目录
llvm-config-10 --cxxflags的输出是
-I / usr / lib / llvm-10 / include ...等
我在两个位置都有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”不起作用?
是否不能在... / llvm / IR目录中找到头文件Module.h?
提前感谢!
代替#include "llvm/Module.h
放置#include "llvm/IR/Module.h
。另外,如果要将C代码编译为LLVM IR,则可以使用命令clang -S -emit-llvm source.c
,这将创建一个包含LLVM IR的source.ll文件。