LLVM每日谈之三十五 LLVM/Clang 6.0.0编译中遇到的问题

随着LLVM/Clang版本的不断升级,LLVM/Clang也在慢慢的变得庞大起来,这使得编译其源码的时间和空间的需求也在极速扩张。这两天在虚拟机Ubuntu18.04上编译LLVM/Clang 6.0.0的时候就遇到了这样的问题。

首先,采用了传统的cmake 、make方式编译,没有添加任何参数。这种情况下,默认编译的是Debug模式,默认编译的目标平台是所有。编译时间长,这个无非是多等一下子。在编译中出现了编译Clang的时候,报文件太大的错误。根据网上所搜集到的信息,我扩充了SWAP的空间。同时,为了节省编译时间,给cmake传递了参数“-DLLVM_TARGETS_TO_BUILD=X86”,让这次编译只编译X86平台。

其次,在编译的过程中,依然出现了问题,还是在编译clang的时候,这次出现的问题是“x86_64-linux-gun-ld: failed to set dynamic section sizes: Memory exhausted”。四处查找了一下,在stackoverflow找到了同样的问题。地址:https://stackoverflow.com/questions/25197570/llvm-clang-compile-error-with-memory-exhausted 根据问题下的建议,我选择了给cmake传递参数“-DLLVM_USE_LINKER=gold”使用gold代替ld。这次顺利编译成功。

最后,如果不是非要Debug版本进行调试,可以直接给cmake 传递:

“-DCMAKE_BUILD_TYPE=Release   -DLLVM_TARGETS_TO_BUILD=X86    -DLLVM_USE_LINKER=gold ”这几个参数。这样可以直接编译只针对X86平台的Release版本,并且使用gold这个linker代替ld。这样既能节省时间,也不会因为空间的问题编译不通过。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值