llvm 安装或设置

示例

始终建议您访问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。