安装或设置

始终建议你访问 LLVM 官方网站, 并根据你的操作系统遵循安装指南。

如果你正在使用 posix,那么简而言之,你必须添加一个官方 LLVM 包存储库 。例如,如果你使用 Ubuntu Xenial(16.04),则可以在/etc/apt/sources.list 文件中添加 debdeb-src 条目:

$ 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 库一起使用。一旦你这样做,你可以去任何 turorial 并开始编码。

如果你希望可以手动安装 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。