并非所有 Kaleidscope 示例都可以编译。有些是这样的。
在 LLVM 的构建过程中,Cmake 抱怨“- 无法找到 LLVM FileCheck”
我的兴趣是使用 LLVM 开发一个玩具编译器 - 在 Ubuntu Bionic Beaver 笔记本电脑上,64 位。因此我需要从源代码编译 LLVM。文档说构建需要 Cmake、gcc/g++、clang 和 zlib。是的,确实如此。我发现这个列表并不完整。
sudo apt update
sudo apt upgrade
sudo apt install -y cmake gcc g++ python build-essential opam ocaml
sudo apt install -y checkinstall python-pygments python-yaml llvm
opam init /* and say yes to creating a profile
opam config env
opam install ctypes ctypes-foreign
opam depext conf-llvm.6.0.0 /* and said Y to install
opam depext conf-m4.1 /* and said Y to install
opam depext conf-pkg-config.1.1 /* and said Y to install
sudo apt install libxml2-dev libplist-dev
sudo apt install llvm-7-tools
/*the z3 package is outdated, need to build from source:
mkdir z3 /*somewhere
git clone https://github.com/Z3Prover/z3
python scripts/mk_make.py
cd build
make
sudo checkinstall /* y and enter
cd <to sourceroot of llvm>
git clone https://github.com/llvm/llvm-project.git
cd llvm-project
mkdir build; cd build
cmake -DLLVM_TARGETS_TO_BUILD="X86" -DCMAKE_BUILD_TYPE=Release ../llvm
make -j2
Run Code Online (Sandbox Code Playgroud)
第 3 章和第 8 章中的万花筒示例编译得很好。第 8 章中的玩具编译器的输出甚至可以编译并链接到一个工作程序。第 2、4、5、6、7 和 9 章中的示例无法编译。
小智 3
您还需要 googletest 作为具有当前源代码 (27-04-2019) 的共享库才能进行编译。它没有被声明为一项要求,当我在构建 llvm、clang、lld 和 clang 额外工具时出错时,这非常令人沮丧。
当前代码的最佳位置是:github.com/google/googletest
关于如何构建 googletest 的最佳答案就在这里