乐鑫技术交流
直播中

张霞

8年用户 1102经验值
私信 关注
[问答]

交叉编译ESP8266的opus编解码器遇到的疑问求解

我正在尝试交叉编译 ESP8266 的 opus 编解码器,目前我遇到了以下错误:

sp8266@esp8266-VirtualBox:~/opus-1.1.2$ make CC=xtensa-lx106-elf-gcc
make  all-recursive
make[1]: Entering directory `/home/esp8266/opus-1.1.2'
make[2]: Entering directory `/home/esp8266/opus-1.1.2'
  CC       celt/bands.lo
  CC       celt/celt.lo
  CC       celt/celt_encoder.lo
  CC       celt/celt_decoder.lo
  CC       celt/cwrs.lo
  CC       celt/entcode.lo
  CC       celt/entdec.lo
  CC       celt/entenc.lo
...
CC       src/mlp.lo
  CC       src/mlp_data.lo
  CCLD     libopus.la
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
/usr/bin/ld:celt/.libs/bands.o:通用 ELF 中的重定位 (EM:94)
celt/.libs/bands.o:添加符号时出错:文件格式错误
collect2:错误:ld 返回 1 退出状态
make[2]: *** [libopus.la] Error 1
make[2]: Leaving directory `/home/esp8266/opus-1.1.2'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/esp8266/opus-1.1.2'
make: *** [all] Error 2 - See more at: http://www.esp8266.com/viewtopic.php?f=9&p=42608#p42608

回帖(1)

敷衍作笑谈

2024-7-22 16:15:30
从您提供的信息来看,您正在尝试为 ESP8266 交叉编译 opus 编解码器。在编译过程中遇到了一些问题。为了解决这个问题,我们可以按照以下步骤进行操作:

1. 确保您已经安装了所需的交叉编译工具链。对于 ESP8266,您需要安装 xtensa-lx106-elf-gcc 工具链。您可以从乐鑫的官方网站下载并安装它。

2. 确保您的环境变量设置正确。您需要将交叉编译工具链的路径添加到 PATH 环境变量中。例如,如果您的工具链安装在 `/usr/local/esp8266/xtensa-lx106-elf` 目录下,您可以在 `.bashrc` 或 `.bash_profile` 文件中添加以下行:

   ```
   export PATH=$PATH:/usr/local/esp8266/xtensa-lx106-elf/bin
   ```

   然后,重新加载配置文件:

   ```
   source ~/.bashrc
   ```

3. 下载 opus 编解码器的源代码。您可以从 opus 官方网站下载源代码:

   ```
   wget https://archive.mozilla.org/pub/opus/opus-1.1.2.tar.gz
   tar -xzf opus-1.1.2.tar.gz
   cd opus-1.1.2
   ```

4. 配置 opus 编解码器的编译选项。在编译之前,您需要配置一些编译选项以适应 ESP8266。运行以下命令:

   ```
   ./configure --host=xtensa-lx106-elf --prefix=/usr/local/esp8266/xtensa-lx106-elf
   ```

   这将为 ESP8266 配置交叉编译环境。

5. 编译 opus 编解码器。现在您可以开始编译 opus 编解码器了。运行以下命令:

   ```
   make
   ```

6. 安装编译好的 opus 编解码器。编译完成后,您需要将编译好的库和头文件安装到 ESP8266 的交叉编译工具链中。运行以下命令:

   ```
   make install
   ```

7. 检查编译结果。在 `/usr/local/esp8266/xtensa-lx106-elf` 目录下,您应该能够找到编译好的库文件(如 `.a` 文件)和头文件。

通过以上步骤,您应该能够成功为 ESP8266 交叉编译 opus 编解码器。如果在编译过程中遇到任何错误,请仔细检查错误信息,并根据需要调整编译选项。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分