找不到 'llvm/IR/Constants.h' 文件

'llvm/IR/Constants.h' file not found

本文关键字:文件 Constants llvm 找不到 IR      更新时间:2023-10-16

我正在尝试制作编译器,并且我正在使用 llvm(C API)用于中间代码和最终代码生产。虽然试图执行命令时:

llvm.o: llvm.cpp llvm.h
    $(CPP) llvm.cpp -c -$(FLAGS) 

在我的make文件中,我会遇到错误:

In file included from llvm.cpp:6:
./opt.h:5:10: fatal error: 'llvm/IR/Constants.h' file not found
#include <llvm/IR/Constants.h>
         ^~~~~~~~~~~~~~~~~~~~~
1 error generated.

我正在使用 Mac OS(Sierra版本10.12.6),并且我使用BREW(brew install llvm)安装了LLVM,因此我无法理解如何找到库文件。

也是我的 clang版本

bash-3.2$ clang --version
Apple LLVM version 9.0.0 (clang-900.0.37)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin 

我已经搜索了很多东西,但是找不到任何解决我的问题的东西,任何帮助!!。

您的标志是什么?您需要提供链接标志和标头搜索标志。

以下可以帮助您:

llvm.o: llvm.cpp llvm.h
    $(CPP) llvm.cpp -c -$(FLAGS) `llvm-config --cxxflags --ldflags --libs`

请注意,没有任何参数的--libs将您的二进制文件与所有LLVM库链接。

upd:

在MacOS LLVM-CONFIG和其他工具上未添加到$PATH中,因为它会覆盖系统编译器并可以以某种方式拧紧您的系统。您需要使用完整的路径,例如/usr/local/Cellar/llvm/3.9.0/bin/llvm-config。确保您在此处使用正确的版本。

另外,请确保您的标志实际上是对命令进行评估而不是粘贴到命令的:

FLAGS=$(shell llvm-config --cxxflags --ldflags --libs)