llvm专题1:编译和安装之CMake配置

Cmake的详细配置可以参考:CMake Option

这里我们给出比较常用的配置和变量,如下:

CMAKE_BUILD_TYPE(类型STRING)

配置make或者ninja编译的优化级别,可选的值有:Release Debug RelWithDebInfo MinSizeRel

Release : 有编译优化,无调试信息,没有Assertion,适合LLVM和Clang用户;

Debug:没有编译优化,有调试信息,有Assertion,适合LLVM开发者;

RelWithDebInfo:有编译优化,有调试信息,没有Assertion,适合需要debug的用户;

MinSizeRel:大小优化优先,没有调试信息,没有Assertion,适合对存储空间有要求的用户。

优化可以使得LLVM/Clang跑得更快,但会成为单步调试的障碍;

带有debug信息的编译会消耗很多内存和硬盘空间,通常跑起来会变慢,可以通过lld来提高内存的使用,可以参考LLVM_USE_LINKER选项。

Assertions是一些内部的检测来帮助发现bug,使能的情况下会使得LLVM和Clang变慢,但在开发过程中很有用。可以通过设置LLVM_ENABLE_ASSERTIONS来覆盖默认值。

CMAKE_INSTALL_PREFIX:PATH

LLVM安装的路径。

CMAKE{C,CXX}_FLAGS:STRING

额外编译C/C++源文件的FLAGS。

CMAKE_{C,CXX}_COMPILER:STRING

具体使用的C和C++编译器,注意如果安装了多个编译器,CMake不一定是用的默认的那一个。

LLVM_ENABLE_PROJECTS:STRING

控制启用哪些项目,例如,希望使用clang或lldb,可以指定-DLLVM _ ENABLE _ PROJECTS = " clang;lldb“。

LLVM_ENABLE_RUNTIMES:STRING

控制启用哪些runtimes,例如,如果想处理libc++或libc++abi,通过指定-DLLVM _ ENABLE _ RUNTIMES = " libcxx;libcxxabi”。

LLVM_LIBDIR_SUFFIX:STRING

附加到要安装库目录的额外后缀,在64位架构上,可以使用-DLLVM_LIBDIR_SUFFIX=64将库安装到/usr/lib64。

LLVM _ PARALLEL _ {COMPILE,LINK}_JOBS:STRING

构建llvm工具链会使用大量资源,尤其是链接,当使用Ninja生成器时(实测需要8GB以上内存),这些选项允许限制并行度。例如,为了避免OOMs或进入内存交换,在32GB的机器上,每15GB的可用RAM只允许一个链接job,可以指定-G Ninja-DLLVM _ PARALLEL _ LINK _ JOBS = 2。 LLVM_TARGETS_TO_BUILD:STRING

控制启用哪些target,例如,可能只需要启用本机target,-DLLVM_TARGETS_TO_BUILD=X86。

LLVM_USE_LINKER:STRING

覆盖系统的默认链接器。例如,使用我们生成的lld,那么设置-DLLVM_USE_LINKER=lld。

先说到这里,其实还有很多。。。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值