How should I build gsl(GNU Scientific Library) to get libgslcblas.a under ESP32-IDF environment?

dallim30
Posts: 22
Joined: Thu Apr 29, 2021 1:35 am

How should I build gsl(GNU Scientific Library) to get libgslcblas.a under ESP32-IDF environment?

Postby dallim30 » Tue Nov 14, 2023 2:49 am

Hello.

How should I build gsl or esp_gsl to get libgslcblas.a under ESP32-IDF environment?
<esp_gsl>
https://components.espressif.com/compon ... anguage=en

thanks

ESP_Sprite
Posts: 9730
Joined: Thu Nov 26, 2015 4:08 am

Re: How should I build gsl(GNU Scientific Library) to get libgslcblas.a under ESP32-IDF environment?

Postby ESP_Sprite » Tue Nov 14, 2023 3:18 am

Did you follow the 'How to use' on the page you linked?

dallim30
Posts: 22
Joined: Thu Apr 29, 2021 1:35 am

Re: How should I build gsl(GNU Scientific Library) to get libgslcblas.a under ESP32-IDF environment?

Postby dallim30 » Tue Nov 14, 2023 9:09 am

Yes, but I got the error message

(1) idf.py add-dependency "leeebo/esp-gsl=*"
(2) idf.py create-project-from-example "leeebo/esp-gsl=*:test_project"
(3) idf.py fullclean
(4) idf.py build
(5) cd test_project
idf.py build
ninja: error: 'gsl_build/esp32s3/lib/libgslcblas.a', needed by 'test_project.elf', missing and no known rule to make it


Please see details below.

(1)
D:\test>idf.py add-dependency "leeebo/esp-gsl=*"
C:\Users\dalli\esp-idf\tools\check_python_dependencies.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
import pkg_resources
Executing action: add-dependency
Created "d:\test\main\idf_component.yml"
Successfully added dependency "leeebo/esp-gsl=*" to component "main"

(2)
D:\test>idf.py create-project-from-example "leeebo/esp-gsl=*:test_project"
C:\Users\dalli\esp-idf\tools\check_python_dependencies.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
import pkg_resources
Executing action: create-project-from-example
Example "test_project" successfully downloaded to d:\test\test_project

(3)
D:\test>idf.py fullclean
C:\Users\dalli\esp-idf\tools\check_python_dependencies.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
import pkg_resources
Executing action: fullclean
Executing action: remove_managed_components
Done

(4)
D:\test>idf.py build
C:\Users\dalli\esp-idf\tools\check_python_dependencies.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
import pkg_resources
Executing action: all (aliases: build)
Running cmake in directory d:\test\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DIDF_TARGET=esp32 -DCCACHE_ENABLE=1 d:\test"...
-- Found Git: C:/Users/dalli/.espressif/tools/idf-git/2.30.1/cmd/git.exe (found version "2.30.1.windows.1")
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.0
........................

Project build complete. To flash, run this command:
C:\Users\dalli\.espressif\python_env\idf4.4_py3.8_env\Scripts\python.exe C:\Users\dalli\esp-idf\components\esptool_py\esptool\esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x1000 build\bootloader\bootloader.bin 0x8000 build\partition_table\partition-table.bin 0xe000 build\ota_data_initial.bin 0x10000 build\TestLibs.bin
or run 'idf.py -p (PORT) flash'

(5)
D:\test>idf.py build
C:\Users\dalli\esp-idf\tools\check_python_dependencies.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
import pkg_resources
Executing action: all (aliases: build)
Running cmake in directory d:\test\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DIDF_TARGET=esp32 -DCCACHE_ENABLE=1 d:\test"...
-- Found Git: C:/Users/dalli/.espressif/tools/idf-git/2.30.1/cmd/git.exe (found version "2.30.1.windows.1")
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.0

(6)
D:\test>cd test_project
D:\test\test_project>idf.py build
C:\Users\dalli\esp-idf\tools\check_python_dependencies.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
import pkg_resources
Executing action: all (aliases: build)
Running cmake in directory d:\test\eyetracker\testlibs211\test_project\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DIDF_TARGET=esp32s3 -DCCACHE_ENABLE=1 d:\test\eyetracker\testlibs211\test_project"...
-- Found Git: C:/Users/dalli/.espressif/tools/idf-git/2.30.1/cmd/git.exe (found version "2.30.1.windows.1")
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/Users/dalli/.espressif/tools/xtensa-esp32s3-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32s3-elf/bin/xtensa-esp32s3-elf-gcc.exe


dalli/esp-idf/components/wifi_provisioning C:/Users/dalli/esp-idf/components/wpa_supplicant C:/Users/dalli/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: D:/test/test_project/build
Running ninja in directory d:\test\test_project\build
Executing "ninja all"...
ninja: error: 'gsl_build/esp32s3/lib/libgslcblas.a', needed by 'test_project.elf', missing and no known rule to make it
ninja failed with exit code 1

MicroController
Posts: 1708
Joined: Mon Oct 17, 2022 7:38 pm
Location: Europe, Germany

Re: How should I build gsl(GNU Scientific Library) to get libgslcblas.a under ESP32-IDF environment?

Postby MicroController » Wed Nov 15, 2023 8:59 pm

Steps 4+5:
-DIDF_TARGET=esp32
but step 6:
-DIDF_TARGET=esp32s3
->
gsl_build/esp32s3/lib/libgslcblas.a', needed by 'test_project.elf', missing

Apparently, the library is built for the ESP32 (steps 4/5) while the test project builds for the ESP32S3 in step 6. Then the ESP32S3 build cannot find the corresponding library for the S3 because it was never built.

Try in step #6:

Code: Select all

D:\test>cd test_project
D:\test\test_project>idf.py set-target esp32
D:\test\test_project>idf.py build

Who is online

Users browsing this forum: Majestic-12 [Bot] and 105 guests