ESP32 + MP3 Player + CMake

Gast #6741300
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
Angehängte Dateien:
Gast
ok, falls es jemanden interessiert: es geht, aber durch Sachen die 
meiner Meinung nach nicht so sein sollten. Oder verpeile ich da etwas?

z.B. in der libfaad_decoder Komponente binde ich in der CMakelists.txt 
die Sourcen der Komponente libm4a direkt ein.
Eigentllich linke ich doch aber die libm4a Komponente direkt hinzu und 
das einbinden der einzelnen Sourcen direkt sollte nicht nötig sein?
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.