要下载哪个版本的llvm
首先来到ndk的目录下的.../toolchains/llvm/prebuilt/linux-x86_64/bin
,然后./clang --version
查看clang的版本。
我们这里的版本是11.05,那我们就找最接近这个版本的11.01
llvm版本来进行编译和使用。
构建编译环境
我们采用的是ubuntu18来进行编译。请在控制台执行如下命令
1 | sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig |
编译llvm
在llvm的目录下创建一个目录用来编译
mkdir build_debug
执行如下命令
cmake -G "Ninja" ../llvm/
(release则为cmake -G Ninja -DMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TEST=OFF -DLLVM_ENABLE_PROJECTS="clang" ../llvm
)
此时可能会发生报错,大致的内容是llvm12.0以后只支持3.14及以上的cmake来进行编译,虽然我也纳闷我编译的是llvm11.01为啥会报错,既然报错,那我们就升级cmake,具体怎么升级,可以参考这个链接https://askubuntu.com/questions/1164459/how-to-install-cmake-3-14-on-ubuntu-18-04
,编译cmake的过程可能会报错如下
此时需要执行如下命令sudo apt install libssl-dev
再次执行命令
发现还是报这个问题,搜了一下是因为Ninja没有在$PATH
环境变量里被找到。好吧,下一个吧。。。
参考这个链接https://ninja-build.org/
,装好之后请添加Ninja
到~/.bashrc
当中。
再次编译,Ok~
- 执行
ninja -jn
,n的大小一般为核数 * 2
最佳
等待编译结束。。。(以下截图是我编译Release之后的,但本教程其实是在编译Debug),出现截图这样的情况就意味着编译成功了~