You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译LLVM master分支(16版本)时libunwind报错求助

解决Ubuntu 22.04编译LLVM master分支时的libunwind错误

你遇到的错误信息:

CMake Error at /home/hxf0223/tmp/llvm-project/libunwind/src/CMakeLists.txt:109 (message):
Compiler doesn't support generation of unwind tables if exception support
is disabled. Building libunwind DSO with runtime dependency on C++ ABI
library is not supported.

你的编译命令:

CC=clang CXX=clang++ cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON  -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;libclc;lld;lldb;mlir;polly;pstl" -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBCXX_USE_COMPILER_RT=ON -DLIBUNWIND_USE_COMPILER_RT=ON -DLLVM_ENABLE_EH=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_RUNTIMES=all ../llvm

可行的修复方案

在编译参数中添加-DLIBUNWIND_ENABLE_SHARED=OFF,强制构建静态版本的libunwind,避免动态库模式下的C++ ABI依赖冲突。修改后的完整命令:

CC=clang CXX=clang++ cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON  -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;libclc;lld;lldb;mlir;polly;pstl" -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBCXX_USE_COMPILER_RT=ON -DLIBUNWIND_USE_COMPILER_RT=ON -DLLVM_ENABLE_EH=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_RUNTIMES=all -DLIBUNWIND_ENABLE_SHARED=OFF ../llvm

另一个可选方案是添加-DLIBUNWIND_ENABLE_EH=ON,明确强制libunwind构建时启用异常支持,但静态库方案通常能更直接解决依赖冲突问题。

原因说明

错误的核心是:构建libunwind动态库(DSO)时,当前环境下编译器无法在异常支持未正确配置的场景生成 unwind 表,且动态库对C++ ABI库的依赖模式不被支持。切换到静态库构建后,既绕开了动态库的ABI依赖问题,也满足了unwind表生成的条件。

我近期编译LLVM master分支时,通过上述参数调整成功完成了构建,你可以尝试这个方案。

内容的提问来源于stack exchange,提问作者roderick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 16:10:33