'llvm/IR/Constants.h' 找不到文件
'llvm/IR/Constants.h' file not found
我正在尝试制作一个编译器,我正在使用 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 安装了 llvm(brew install 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
我在谷歌上搜索了很多,但找不到任何解决我问题的方法,感谢任何帮助!!!
你的旗帜是什么?您需要提供 linker 标志和 header 搜索标志。
以下内容可以帮到您:
llvm.o: llvm.cpp llvm.h
$(CPP) llvm.cpp -c -$(FLAGS) `llvm-config --cxxflags --ldflags --libs`
请注意,不带任何参数的 --libs
将 link 您的二进制文件包含所有 LLVM 库。
UPD:
在 MacOS 上 llvm-config 和其他工具未添加到 $PATH
,因为它会覆盖系统编译器并可能以某种方式破坏您的系统。您需要使用完整路径,例如/usr/local/Cellar/llvm/3.9.0/bin/llvm-config
。请确保您在此处使用正确的版本。
此外,请确保您的 FLAGS 已实际评估,而不是按原样粘贴到命令中:
FLAGS=$(shell llvm-config --cxxflags --ldflags --libs)
我正在尝试制作一个编译器,我正在使用 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 安装了 llvm(brew install 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
我在谷歌上搜索了很多,但找不到任何解决我问题的方法,感谢任何帮助!!!
你的旗帜是什么?您需要提供 linker 标志和 header 搜索标志。
以下内容可以帮到您:
llvm.o: llvm.cpp llvm.h
$(CPP) llvm.cpp -c -$(FLAGS) `llvm-config --cxxflags --ldflags --libs`
请注意,不带任何参数的 --libs
将 link 您的二进制文件包含所有 LLVM 库。
UPD:
在 MacOS 上 llvm-config 和其他工具未添加到 $PATH
,因为它会覆盖系统编译器并可能以某种方式破坏您的系统。您需要使用完整路径,例如/usr/local/Cellar/llvm/3.9.0/bin/llvm-config
。请确保您在此处使用正确的版本。
此外,请确保您的 FLAGS 已实际评估,而不是按原样粘贴到命令中:
FLAGS=$(shell llvm-config --cxxflags --ldflags --libs)