macOS下llvm编译的踩坑经历

macOS 下 llvm 编译的踩坑经历

出现问题:

1
2
3
4
5
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安装)

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

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

1
2
3
4
5
6
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 中添加:

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

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


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!