Linux下将GSL库编译为ESP-IDF可用的库文件
安装ESP-IDF
安装准备
编译 ESP-IDF
需要以下软件包
sudo apt-get install git wget flex bison gperf python3 python3-venv python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
备注:使用 ESP-IDF
需要 CMake 3.16
或以上版本
获取 ESP-IDF
获取 ESP-IDF
,使用 git clone
命令克隆远程仓库
mkdir -p ~/esp
cd ~/esp
git clone -b v4.3.4 --recursive https://github.com/espressif/esp-idf.git
备注:参考本身需要版本,我这里为了兼容Windows下使用v4.3.4
。
ESP-IDF
将下载至 ~/esp/esp-idf
。
设置工具
除了 ESP-IDF
本身,还需要为支持 ESP32
的项目安装 ESP-IDF
使用的各种工具,比如编译器、调试器、Python
包等。
cd ~/esp/esp-idf
./install.sh esp32
上述命令仅仅为 ESP32
安装所需工具。如果需要为多个目标芯片开发项目,则可以一次性指定多个目标,如下所示:
cd ~/esp/esp-idf
./install.sh esp32,esp32s3
如果需要一次性为所有支持的目标芯片安装工具,可以运行如下命令:
cd ~/esp/esp-idf
./install.sh all
使用上述方法可能安装较慢,若要在安装工具时优先选择 Espressif
下载服务器,请在运行 install.sh
时使用以下命令:
cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh
设置环境变量
在需要运行 ESP-IDF 的终端窗口运行以下命令:
. $HOME/esp/esp-idf/export.sh
注意,命令开始的 .
与路径之间应有一个空格!
或者使用如下命令
source $HOME/esp/esp-idf/export.sh
经常运行 ESP-IDF
,您可以为执行 export.sh
创建一个别名,具体步骤如下:
复制并粘贴以下命令到 shell
配置文件中~/.bashrc
alias get_idf='. $HOME/esp/esp-idf/export.sh'
通过重启电脑或运行 source ~/.bashrc
来刷新配置文件。
现在您可以在任何终端窗口中运行 get_idf
来设置或刷新 esp-idf
环境
参考链接:https://blog.csdn.net/zsyf33078/article/details/133834913
编译GSL
下载GSL库
下载连接GSL - GNU Scientific Library - GNU Project - Free Software Foundation
安装GSL
-
将下载好的压缩包放到Ubuntu中并解压
tar -vxf gsl-latest.tar.gz
-
进入解压好的文件夹中
cd gsl-2.7.1/
-
设置环境变量
export CFLAGS=-fPIC
一开始没有设置该环境变量时,在编译调用GSL静态库文件的项目时遇到过以下错误:
/home/cn/GSL-arm/lib/libgsl.a(fft.o):-1: error: relocation R_ARM_THM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
编译GSL
设置交叉编译器
./configure CC=/home/ryh/.espressif/tools/xtensa-esp32-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc-8.4.0 \
--host=arm-linux-gnueabi \
--target=arm-linux-gnueabi \
--prefix=/home/ryh/works/GNU/GSL \
--with-pic \
--disable-shared
-
CC
:编译器的位置,这里的编译器要使用ESP-IDF
自带的esp32
交叉编译器,路径为:/安装目录/.espressif/tools/xtensa-esp32-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc-8.4.0
-
--host
:用于指定将要运行该软件的主机平台,这通常是开发者自己所使用的计算机平台。 -
--target
:用于指定软件所处理的目标平台,这通常是开发者希望程序能够在其上运行的平台。 -
--prefix
:指定安装路径 -
--with-pic
:启用位置无关代码 (PIC) 的构建,通常用于静态库的构建。 -
--disable-shared
:禁用共享库的构建。
设置完成后
编译
make
安装
make install
检查
make installcheck
然后就能在–prefix设置的位置看见以下文件夹
进入lib文件夹可以看见多个库文件
至此编译完成,添加GSL库到esp-idf工程中,请查看:ESP32:连接外部库GSL
参考链接:https://blog.csdn.net/weixin_51034082/article/details/130681083