安裝或設定

始終建議你訪問 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。