安装或设置
始终建议你访问 LLVM 官方网站, 并根据你的操作系统遵循安装指南。
如果你正在使用 posix,那么简而言之,你必须添加一个官方 LLVM 包存储库 。例如,如果你使用 Ubuntu Xenial(16.04)
,则可以在/etc/apt/sources.list
文件中添加 deb
和 deb-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。