# 如何向 Rock Framework 添加外部库

> 原文链接：https://robotics.hellobike.com/pitfalls/2014-05-15-robotics-se-2882
> 频道：pitfalls | 更新日期：2014-05-15 | 标签：auto, stackexchange, software, rock
> 核心摘要：在 Rock 中添加外部库应避免修改上游包，按类别纳入 autoproj，非标准构建需写自定义 autobuild 处理器。

# 如何向 Rock Framework 添加外部库

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[How do I add an external library to the Rock Framework?](https://robotics.stackexchange.com/questions/2882/how-do-i-add-an-external-library-to-the-rock-framework)（Robotics Stack Exchange #2882）

**状态**：已解决

## 问题

提问者想把已有外部库加入 Rock Framework，以便在组件开发中使用，不确定推荐做法。

## 环境

Rock Framework；`autoproj`；外部库可能使用 `CMake`、`autotools` 或非标准构建系统。

## 解决办法

1. 不要修改外部包；如必须修改，应能作为补丁提交并合入上游。
2. 不要使用已废弃的 `external/` 类别，选择合适类别；设备驱动按如 `imu_xsens` 的命名规则。
3. 若库使用标准构建系统并提供安装目标，像普通包一样加入 `autoproj` 配置，并在包集 `manifests/` 中添加 manifest。
4. 若不符合标准实践，编写自定义 `autobuild` handler，实现 `do_build`、`do_install`、`do_pkgconfig`，安装到 `prefix` 并生成 `pkg-config` 文件。

原问题作者：Jakob；采纳答案作者：sylvain.joyeux。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #2882：How do I add an external library to the Rock Framework?](https://robotics.stackexchange.com/questions/2882/how-do-i-add-an-external-library-to-the-rock-framework)