Hi,
evtl kann mir jemand beim Verständnis eines Buildproblems auf dem ESP32
mit idf 4.3(hab ich aber auch mti den anderen 4.x Versionen) helfen.
Ich habe ein bestehendes MP3 Radio Projekt von BuddyC asino vom alten
IDF Buildsystem auf CMake konvertiert.
Soweit so gut. Ich habe nur an einer Stelle bei einer Komponente das
Problem,
das eine der Komponenten drei andere Komponenten ums verrecken nicht
einbinden kann bzw. findet.
Generating ld/esp32.project.ld
1 | [19/20] Linking CXX executable esp32_mp3_decoder.elf
|
2 | FAILED: esp32_mp3_decoder.elf
|
3 | cmd.exe /C "cd . && C:\Users\funky\.espressif\tools\tools\xtensa-esp32-elf\esp-2020r3-8.4.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe -mlongcalls -Wno-frame-address @CMakeFiles\esp32_mp3_decoder.elf.rsp -o esp32_mp3_decoder.elf && cd ."
|
4 | c:/users/funky/.espressif/tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/audio_player/libaudio_player.a(audio_player.c.obj):(.literal.start_decoder_task+0x24): undefined reference to `mp3_decoder_task'
|
5 | collect2.exe: error: ld returned 1 exit status
|
6 | ninja: build stopped: subcommand failed.
|
7 | ninja failed with exit code 1
|
Die Komponente audio_player benutzt je nach Format die Komponenten
mp3_decoder, libfaad_decoder und fdk_aac_decoder.
Entferne ich die Verweise auf die Decoder dann kompiliert alles.
Ich habe es mal soweit runtergestrippt, das ich nur den mp3_decoder
verwende, aber sobald ich den als Komponente einbinde, kann ich das
ganze nicht linken.
Ich hatte testweise mal die jeweiligen Decoder direkt in den
audio_player eingebunden und nicht als Komponente gelinkt und das
funktionierte dann auch.
Nur diese Komponentenlösung funktioniert nicht und ich würde gerne
verstehen was ich da falsch machen. Bei undefined reference fehlt dem
Compiler doch eigentlich die entsprechende Source? Aber ich bin der
Meinung, dass die eingebunden ist und ich sehe in den Logs auch, dass
die Komponente kompiliert wird.
Gibt es jemand der sich ein wenig mit IDF & ESP32 auskennt und mir
verraten kann wo da der Fehler liegt?
1000 Dank