Linux下将GSL库编译为ESP-IDF可用的库文件

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

  1. 将下载好的压缩包放到Ubuntu中并解压

    tar -vxf gsl-latest.tar.gz
    
  2. 进入解压好的文件夹中

    cd gsl-2.7.1/
    
  3. 设置环境变量

    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:禁用共享库的构建。

设置完成后

image-20240513175642546

编译
make
安装
make install
检查
make installcheck

然后就能在–prefix设置的位置看见以下文件夹

image-20240513175905355

进入lib文件夹可以看见多个库文件

image-20240513175927734

至此编译完成,添加GSL库到esp-idf工程中,请查看:ESP32:连接外部库GSL

参考链接:https://blog.csdn.net/weixin_51034082/article/details/130681083

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值