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

OpenSUSE集成Drake时libclang相关编译错误求助

OpenSUSE Leap 15.4下Drake集成编译错误解决方案

问题背景

在OpenSUSE Leap 15.4环境中集成Drake(仓库为hedaniel7/Drake-OpenSUSE-Integration),执行以下命令后:

cmake .. -DWITH_USER_FMT:BOOLEAN=ON -DWITH_USER_SPDLOG:BOOLEAN=ON
make install

出现编译错误:

RuntimeError: Library file /usr/lib/x86_64-linux-gnu/libclang-14.so does NOT exist

已尝试的无效操作

  • 手动软链接libclang-14.so到/usr/lib/x86_64-linux-gnu路径,触发clang_annotateTokens未定义符号错误;
  • 修改libclang_setup.py指定本地libclang路径,导致stddef.h找不到的致命错误;
  • 自行编译clang-14.0.0,仍遭遇stddef.h缺失问题;
  • 添加GCC头路径后,出现大量内置函数未声明错误;
  • 指定libclang.so.15.0.7并设置CPLUS_INCLUDE_PATH,引发Clang头文件与GCC兼容性错误。

有效解决方案

OpenSUSE Leap 15.4的库路径与Debian系发行版不同(64位库默认在/usr/lib64而非/usr/lib/x86_64-linux-gnu),且需通过官方包管理器安装匹配版本的clang组件,具体步骤如下:

  1. 安装clang14及依赖包
    执行以下命令安装系统适配的clang14开发组件:
zypper install clang14 clang14-devel libclang14
  1. 配置环境变量
    设置环境变量让编译过程找到正确的库和头文件:
export LD_LIBRARY_PATH=/usr/lib64/clang/14/lib:$LD_LIBRARY_PATH
export CPLUS_INCLUDE_PATH=/usr/lib64/clang/14/include:$CPLUS_INCLUDE_PATH
  1. 带指定参数重新执行cmake
    在cmake命令中明确指定libclang的库路径和头文件路径:
cmake .. -DWITH_USER_FMT:BOOLEAN=ON -DWITH_USER_SPDLOG:BOOLEAN=ON \
-DLIBCLANG_LIBRARY=/usr/lib64/libclang-14.so \
-DLIBCLANG_INCLUDE_DIR=/usr/lib64/clang/14/include
  1. 重新编译安装
    执行编译安装命令:
make install

备选方案:修改libclang_setup.py路径

如果上述cmake参数方式无效,可直接修改项目中的libclang_setup.py:

  • 将文件中所有/usr/lib/x86_64-linux-gnu路径替换为/usr/lib64;
  • 确保指定的libclang版本为libclang-14.so,并验证头文件路径指向/usr/lib64/clang/14/include;
  • 保存后重新执行make install。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:10:19