macOS下llvm编译的踩坑经历

本文讲述了在遇到'LLVM MaybeAlign'错误后,通过检查版本、环境变量设置和CMakeLists文件调整,成功解决编译问题的过程。重点在于如何在不修改环境变量的情况下,通过修改CMake配置来适配LLVM安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现问题:

error: no member named 'MaybeAlign' in namespace 'llvm'
    return context.builder.CreateAlignedStore(val, ptr, llvm::MaybeAlign(4));
                                                        ~~~~~~^
error: no member named 'MaybeAlign' in namespace 'llvm'
    return context.builder.CreateAlignedLoad(ptr, llvm::MaybeAlign(4));

解决过程:

使用brew info llvm查看llvm版本(brew install llvm安装)

llvm: stable 12.0.0 (bottled), HEAD [keg-only]

发现是keg-only的版本(我也不知道这是什么),但是brew提示了我

If you need to have llvm first in your PATH, run:
  echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.zshrc

For compilers to find llvm you may need to set:
  export LDFLAGS="-L/usr/local/opt/llvm/lib"
  export CPPFLAGS="-I/usr/local/opt/llvm/include"

感觉修改环境变量太麻烦了,于是……

解决方案:

在编译项目使用的CMakeLists中添加:

SET(LLVM_DIR /usr/local/opt/llvm/lib/cmake/llvm)
SET(CMAKE_PREFIX_PATH /usr/local/opt/llvm/lib/cmake/)

根据自己llvm的安装地址进行调整
编译成功
yeah~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值