Hallo! Ich versuche gerade verzweifelt die libCURL Library in meinem ESP-IDF Projekt zuincluden. Ich habe an hand dieser Anleitung alles gemacht um die Bibliothek zubenutzen. https://www.youtube.com/watch?v=tp4OC_kGMgU Doch der #include <curl/curl.h> funktioniert trotzdem nicht. Kann mir da jemand helfen oder ein anderes Tutorial zeigen(Da ich kein anderes finde) Gruß Maurice
Maurice schrieb: > Doch der #include <curl/curl.h> funktioniert trotzdem nicht. Was heißt "funktioniert nicht"?
Ich habe alles soll gemacht wie im video, doch wenn ich sein eigenes Example builde dann kommt der Fehler: [ C:/Espressif/esp-idf/testttest/main/testttest.c:9:10: fatal error: curl/curl.h: No such file or directory #include "curl/curl.h" ^~~~~~~~~~~~~ compilation terminated. ninja: build stopped: subcommand failed. ninja failed with exit code 1]
:
Bearbeitet durch User
Da wirst du wohl die Library erst einmal korrekt auf deinem System / in deinem Projekt installieren müssen.
Das denke ich mir ja auch. Ich habe nur keine Ahnung wie.
Maurice schrieb: > Doch der #include <curl/curl.h> funktioniert trotzdem nicht. Maurice schrieb: > curl/curl.h: No such file or directory > #include "curl/curl.h" Was denn nun, "" oder <>?
Oh sorry, es steht #include "curl/curl.h". Habe gerade auch mal die andere Variante also mit <> getestet aber das funktioniert auch nicht dann kommt der selber fehlercode
:
Bearbeitet durch User
Maurice schrieb: > curl/curl.h: No such file or directory Wo befindet sich Dein "curl.h"? - Ist es da, wo es sein soll - dann ist Deine build-Umgebung nicht richtig konfiguriert. - Ist es nicht dort, dann solltest Du es dort hin installieren. Maurice schrieb: > Ich habe nur keine Ahnung wie. Mein Standardspruch: „Lerne auf Deinen Füßen zu stehen, bevor Du versuchst zu rennen.” - Sorry, haben wir alle so gemacht.
Martin H. schrieb: > Maurice schrieb: >> curl/curl.h: No such file or directory > > Wo befindet sich Dein "curl.h"? > - Ist es da, wo es sein soll - dann ist Deine build-Umgebung nicht > richtig konfiguriert. > - Ist es nicht dort, dann solltest Du es dort hin installieren. > Als nach meinen C-Kenntnissen nicht, also es ist nicht im Main-Ordner. Suche ich mir die curl.h Datei nun raus und packe sie dort hin... immer noch der gleicher Fehler. > Maurice schrieb: >> Ich habe nur keine Ahnung wie. > > Mein Standardspruch: „Lerne auf Deinen Füßen zu stehen, bevor Du > versuchst zu rennen.” - Sorry, haben wir alle so gemacht. Das ist ein guter Spruch aber wie soll ich stehen wenn ich noch niejemanden stehen gesehen habe. :)
welche ESP32 IDF Version benutzt du denn? component.mk gibt es meines Wissens nach nicht mehr und das setzt jetzt auf CMake (zumindest seit 4.x) Bei Espressif haben Anleitungen selten länger Bestand als 30 Tage ;) Da ändert sich alle Nase was Du musst in deinem Projekt das Include Verzeichnis von libcurl angeben damit die Header gefunden werden und du musst die Sourcen hinzufügen damit der Compiler den Bums kompilieren kann.
A. B. schrieb: > welche ESP32 IDF Version benutzt du denn? > component.mk gibt es meines Wissens nach nicht mehr und das setzt jetzt > auf CMake (zumindest seit 4.x) > Bei Espressif haben Anleitungen selten länger Bestand als 30 Tage ;) Da > ändert sich alle Nase was > Diese benutze ich gerade ESP-IDF v4.4.2-dirty > > Du musst in deinem Projekt das Include Verzeichnis von libcurl angeben > damit die Header gefunden werden und du musst die Sourcen hinzufügen > damit der Compiler den Bums kompilieren kann. Hast du das von einem Tutorial oder wo könnte ich das genau nachlesen. Aber danke für die tipps
Hier mal ein Beispiel für eine CMakeLists.txt mit Espressif Syntax message("Build components/common") idf_component_register(SRCS "common_buffer.c" INCLUDE_DIRS "include" ) und angehängt die dazu passende Directory Struktur. Damit sollte es klarer werden Das ist aber auch auf der Espressif Homepage erklärt https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html Meine Erfahrung mit Espressif ist aber, das man sich nie sicher sein kann ob der Fehler bei einem selbst oder bei derem Gefrickel liegt. Das macht es gerade zu Beginn nicht einfacher
A. B. schrieb: > Hier mal ein Beispiel für eine CMakeLists.txt mit Espressif Syntax > > message("Build components/common") > idf_component_register(SRCS "common_buffer.c" > INCLUDE_DIRS "include" > ) > > und angehängt die dazu passende Directory Struktur. Damit sollte es > klarer werden > > das habe ich jetzt auch versucht, jedoch finde ich bei der libcurl library kein curl.c file welches ich dort dann als Source angeben kann. > Das ist aber auch auf der Espressif Homepage erklärt > https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html > das hilft mir schonmal jetzt muss ich nur gucken wie es hier geht > Meine Erfahrung mit Espressif ist aber, das man sich nie sicher sein > kann ob der Fehler bei einem selbst oder bei derem Gefrickel liegt. Das > macht es gerade zu Beginn nicht einfacher
Etwas Grundsatzdiskussion... A. B. schrieb: > Meine Erfahrung mit Espressif ist aber, das man sich nie sicher sein > kann ob der Fehler bei einem selbst oder bei derem Gefrickel liegt. Das > macht es gerade zu Beginn nicht einfacher Deshalb sagte ich Martin H. schrieb: > Mein Standardspruch: „Lerne auf Deinen Füßen zu stehen, bevor Du > versuchst zu rennen.” - Sorry, haben wir alle so gemacht. Maurice schrieb: > Das ist ein guter Spruch aber wie soll ich stehen wenn ich noch > niejemanden stehen gesehen habe. :) Soll heißen: SW-Entwicklung mit C beherrschen, also: 1. Ein hello_world für den PC schreiben oder ein blinky für den µC, z.B. Arduino-HW, aber ohne dessen High-Level-Funktionen zu nutzen, siehe: - https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial - https://create.arduino.cc/projecthub/milanistef/introduction-to-bare-metal-programming-in-arduino-uno-f3e2b4 2. Wenn es läuft eine oder mehrere eigene Funktionen in main.c definieren, die irgendwas kontrollierbares machen (z.B. Stringlänge bestimmen oder einen Integerwert quadrieren), pille-palle vollkommen egal. 3. Diese Funktion(en) in eine eigene Source-Datei "meine_fkt.c" auslagern, Header "meine_fkt.h" dazu schreiben und alles linken. 4. Eine passende Makedatei kreieren incl. "make clean" etc. 5. Die o.g. Funktion(en) in eine eigene statische lib "meine_lib.a" (plus "meine_lib.h") packen und dagegen linken. 6. Das gleiche als shared (dynamic) lib "meine_lib.so". 7. Die lib irgendwo anders hin verschieben und trotzdem verwenden. Dabei den Unterschied zwischen #include"" und #include<> verstehen. Ist in einer Woche erledigt, wenn Du jeden Abend ein-zwei Stunden damit verbringst. Laborbuch schreiben - was gemacht, warum geht es nicht, wie habe ich es gelöst - am Besten auf Papier mit reichlich Platz für spätere Kommentare, gerne mehrfarbig. Ist alles nicht Maker-sexy (Shield kaufen, Sketch kopieren, lib.zip downloaden), aber wenn Du es kapiert hast, dann meisterst Du auch solche von A.B. beschriebenen Frickeleien, du weißt, wo Du suchen musst, wenn etwas nicht gefunden wird und wie man z.B. eigene "Rucksäcke" an eine Header-Datei anbaut.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.