始终建议您访问LLVM官方网站,并根据您的操作系统遵循安装指南。
如果您正在使用posix,那么简而言之,您必须添加官方LLVM软件包存储库之一。例如,如果您使用Ubuntu Xenial(16.04),则在文件中添加deb和deb-src条目/etc/apt/sources.list:
$ sudo su $ echo deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main \ >> /etc/apt/sources.list $ echo deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main \ >> /etc/apt/sources.list
然后,安装就像调用一样简单
$ sudo apt update $ sudo apt install clang-X
X您要查找的版本在哪里(撰写本文时为4.0)。
请注意,clang是通过LLVM写的C / C ++编译器(现在实际上是自托管的),并且与所有LLVM库一起提供。完成此操作后,您可以开始任何工作并开始编码。
如果愿意,可以手动安装LLVM库。为此,您只需要在apt install llvm-Y哪里Y寻找图书馆。但是我建议使用带有clang的项目编译LLVM。
完成后,您应该拥有llvm-config工具。获取正确的LLVM项目编译所需的编译器标志非常有用。所以它起作用的第一个测试是通过调用
$ llvm-config-4.0 --cxxflags --libs engine -I/usr/lib/llvm-4.0/include -std=c++0x -gsplit-dwarf -Wl,-fuse-ld=gold -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -Werror=date-time -std=c++11 -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-4.0
您可能会得到不同的标志集,不必担心。只要它没有失败,command not found您就可以。
下一步是测试实际的LLVM库本身。因此,让我们创建一个简单的llvmtest.cpp文件:
#include <iostream> #include "llvm/IR/LLVMContext.h" int main() { llvm::LLVMContext context; std::cout << &context << std::endl; return 0; };
请注意,我使用的std::cout是我们实际上使用的context变量(因此,编译器不会在编译阶段将其删除)。现在用
$ clang++-4.0 -o llvmtest `llvm-config-4.0 --cxxflags --libs engine` llvmtest.cpp
并测试
$ ./llvmtest 0x7ffd85500970
恭喜你!准备使用LLVM。