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

如何在CLion 2022中借助Bazel插件调试百度Apollo相机驱动?

解决Apollo mainboard调试时找不到动态加载的相机驱动.so文件问题

方法1:给mainboard的BUILD目标添加强制依赖

找到cyber/mainboard/BUILD里的cc_binary目标,把相机驱动的共享库目标加到deps或者data属性中:

cc_binary(
    name = "mainboard",
    srcs = ["mainboard.cc"],
    # 保留原有配置
    deps = [
        # 原有依赖...
        "//modules/drivers/camera:camera_driver_lib",  # 替换为实际相机驱动的目标路径
    ],
    # 若无需编译依赖,仅需将.so打包到运行缓存,可改用data属性
    # data = [
    #     "//modules/drivers/camera:camera_driver_lib",
    # ],
)

这样Bazel会将相机驱动的.so文件纳入mainboard的运行缓存目录,启动时就能正常找到。

方法2:用Bazel参数预复制驱动文件

在CLion的Bazel运行配置中,添加启动参数:

--run_under="cp -L $(bazel cquery //modules/drivers/camera:camera_driver_lib --output=files) $(dirname $0)/ && "

这条命令会在mainboard启动前,把相机驱动的.so文件复制到它的运行目录下,确保加载路径有效。

方法3:修改DAG文件的绝对路径

先通过以下命令获取相机驱动.so的实际缓存路径:

bazel cquery //modules/drivers/camera:camera_driver_lib --output=files

然后把DAG文件里的library_path替换成这个绝对路径,mainboard就能直接定位到缓存中的.so文件。

方法4:调整CLion环境变量

在CLion的Bazel运行配置里,找到「Environment Variables」,添加:

LD_LIBRARY_PATH=$(bazel info bazel-bin)/modules/drivers/camera:$LD_LIBRARY_PATH

或者把「Working Directory」设置为相机驱动.so所在的Bazel缓存目录,让系统自动识别库文件路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:40:29