之前的版本发完,有空来更新一下之前的gcc和llvm+clang工具链的编译脚本了。其实GCC 7是才release没多久但是llvm 4.0发布其实有一段时间了。

GCC

这回是GCC的脚本有一些改动。因为我现在开发机的环境很多组件并没有装,所以顺带发现了之前的构建脚本的一些问题。

LLVM和Clang工具链的生成配置文件写得比较搓,所以略微麻烦,另外这个脚本没有经过多环境测试,不保证在其他Linux发行版里正常使用。

CHANGE

相对于上一个版本Linux 编译安装 LLVM + Clang 3.5的变化:

  1. 这个版本llvm的源码修复了一个会导致开启exception功能之后的编译bug,所以编译脚本不再会修改llvm的源代码
  2. 编译过程改成了两次编译
  3. 编译过程完全使用cmake。
  4. 终于自举编译成功啦,第二次自举编译完成后,不再依赖libstdc++,转而依赖编译出来的libc++和libc++abi,但是仍然会依赖libgcc_s.so
  5. 多线程编译的时候时不时会出现奇怪的失败,所以默认改成单线程编译
  6. 修复编译完成后的提示输出

NOTICE

由于生成动态库会出现一些问题,所以目前都是采用llvm默认的静态链接的方式。但是静态链接生成的文件比较大,并且链接的东西很多,有可能会出现链接超时的错误。 这时候可以通过手动cd到编译目录,执行 make && make install 即可