警告

This document is not updated for ESP32H21 yet, so some of the content may not be correct.

This warning was automatically inserted due to the source file being in the add_warnings_pages list.

# MacOS 环境下从源码编译 OpenOCD

[English]

除了从 Espressif 官方 直接下载 OpenOCD 可执行文件，你还可以选择从源码编译得到 OpenOCD。如果想要快速设置 OpenOCD 而不是自行编译，请备份好当前文件，前往 安装 OpenOCD 章节查阅。

## 下载 OpenOCD 源码

支持 ESP32-H21 的 OpenOCD 源代码可以从乐鑫官方的 GitHub 获得，网址为 https://github.com/espressif/openocd-esp32。请使用以下命令来下载源代码:

    cd ~/esp
    git clone --recursive https://github.com/espressif/openocd-esp32.git

克隆后的源代码被保存在 `~/esp/openocd-esp32` 目录中。

## 安装依赖的软件包

使用 Homebrew 安装编译 OpenOCD 所需的软件包:

    brew install automake libtool libusb wget gcc@4.9 pkg-config

## 构建 OpenOCD

配置和构建 OpenOCD 的流程如下:

    cd ~/esp/openocd-esp32
    ./bootstrap
    ./configure
    make

你可以选择最后再执行 `sudo make install` ，如果你已经安装过别的开发平台的 OpenOCD，请跳过这个步骤，因为它可能会覆盖掉原来的 OpenOCD。

备注

- 如果发生错误，请解决后再次尝试编译，直到 `make` 成功为止。

- 发生 `Unknown command 'raggedright'` 错误可能是因为安装的 `texinfo` 版本不对，或是由于没有将其添加到 PATH 路径。为了解决该问题，在运行 `./bootstrap` 前，请先运行如下命令确保安装合适版本的 `texinfo` 并将其添加到 PATH 路径:

      brew install texinfo
      export PATH=/usr/local/opt/texinfo/bin:$PATH

- 如果 OpenOCD 存在子模块问题，请 `cd` 到 `openocd-esp32` 目录，并输入 `git submodule update --init` 命令。

- 如果 `./configure` 成功运行，JTAG 被使能的信息会被打印在 `OpenOCD configuration summary` 下面。

- 如果你的设备信息未显示在日志中，请根据 `../openocd-esp32/doc/INSTALL.txt` 文中的描述使用 `./configure` 启用它。

- 有关编译 OpenOCD 的详细信息，请参阅 `openocd-esp32/README.OSX`。

一旦 `make` 过程成功结束，OpenOCD 的可执行文件会被保存到 `~/esp/openocd-esp32/src/openocd` 目录中。

## 下一步

想要进一步配置调试环境，请前往 配置 ESP32-H21 目标板 章节。

此文档对您有帮助吗？

- 反馈已收到，谢谢！
- 如果您有其他意见，欢迎填写乐鑫文档反馈表。

- 我们重视您的反馈。
- 您可以填写乐鑫文档反馈表告诉我们如何改进该文档。