编译 LLVM IR 时使用 LLVM headers
Using LLVM headers when compiling LLVM IR
我正在尝试将 C 代码片段编译成 LLVM IR。
我需要 #include 适当的 LLVM header 文件,例如 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.cpp:1:10: 致命错误: Module.h: 没有那个文件或目录
llvm-config-10 --cxxflags 的输出是
-I/usr/lib/llvm-10/include ...等
我在两个地方有 Module.h header:
/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 目录中找到 header Module.h 吗?
提前致谢!
将 #include "llvm/Module.h
替换为 #include "llvm/IR/Module.h
。
另外,如果你想将 C 代码编译成 LLVM IR,你可以使用命令 clang -S -emit-llvm source.c
,这将创建一个包含 LLVM IR 的 source.ll 文件。
我正在尝试将 C 代码片段编译成 LLVM IR。 我需要 #include 适当的 LLVM header 文件,例如 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.cpp:1:10: 致命错误: Module.h: 没有那个文件或目录
llvm-config-10 --cxxflags 的输出是
-I/usr/lib/llvm-10/include ...等
我在两个地方有 Module.h header:
/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 目录中找到 header Module.h 吗?
提前致谢!
将 #include "llvm/Module.h
替换为 #include "llvm/IR/Module.h
。
另外,如果你想将 C 代码编译成 LLVM IR,你可以使用命令 clang -S -emit-llvm source.c
,这将创建一个包含 LLVM IR 的 source.ll 文件。