我安装llvm和clang3.9一起使用下面的命令,如获得所有其他的包LLVM每晚包的链接.
sudo apt-get install clang-3.9 clang-3.9-doc llvm-3.9 llvm-3.9-dev llvm-3.9-doc llvm-3.9-examples llvm-3.9-runtime clang-format-3.9 python-clang-3.9 libclang-common-3.9-dev libclang-3.9-dev libclang1-3.9 libclang1-3.9-dbg libllvm-3.9-ocaml-dev libllvm3.9 libllvm3.9-dbg lldb-3.9 lldb-3.9-dev liblldb-3.9-dbg
Run Code Online (Sandbox Code Playgroud)
然后我尝试根据本教程编译并运行示例lexer和解析器以获取万花筒语言.
但是,我无法编译给定的示例程序,因为我收到错误:
clang++-3.9 -g -O3 toy.cpp
toy.cpp:1:10: fatal error: 'llvm/ADT/STLExtras.h' file not found
#include "llvm/ADT/STLExtras.h"
^
1 error generated.
Run Code Online (Sandbox Code Playgroud)
我认为这个错误是因为安装了LLVM llvm-3.9,因此所有文件都安装在以*-3.9.结尾的目录中.如何在不必删除安装并从LLVM源执行手动构建安装的情况下修复此错误?
这看起来像教程中的一个错误 - toy.cpp以前的代码是自包含的,但它现在依赖于LLVM头(这是最近的更改).
您可以使用第3章中提供的命令来构建,即:
clang++ -g -O3 toy.cpp `llvm-config --cxxflags --ldflags --system-libs --libs core` -o toy
Run Code Online (Sandbox Code Playgroud)