Leeres VS Code Projekt mit ESP-IDF

OP #7497618
Lesenswert?

Hallo Zusammen,

könnte mir jemand, der VS Code in Verbindung mit der ESP-IDF Erweiterung verwendet bitte mal ein compilierbares Projekt hier rein stellen, in dem diese Person eigene Subfolder und Sources/ Headerfiles erstellt hat?

Ich versuche schon seit Tagen in ein Projekt eigene Folder einzubinden aber egal was ich tue, es will nicht bauen.

Ich habe die CMakeList angepasst, ich habe den Include Path angepasst. Ich habe wirklich alles gemacht, was in der Dokumentation steht. Langsam bin ich am verzweifeln...

Ich hatte bisher nicht wirklich mit VS Code zutun, habe aber mit einigen gesprochen die zu mir gemeint haben, das die ESP-IDF generell ein Krampf sei :/

LG

OP #7497750
Lesenswert?

Meine Struktur:

1
MeinProjekt
2
  --build
3
  --components
4
  --main
5
  --user
6
    --src
7
    --inc

Inhalt der CMakeList.txt:

1
# The following five lines of boilerplate have to be in your project's
2
# CMakeLists in this exact order for cmake to work correctly
3
cmake_minimum_required(VERSION 3.16)
4

5
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
6
project(MeinProjekt)
7

8
# Fügen Sie Ihre Header- und Source-Dateien hinzu
9
add_executable(MeinProjekt
10
    user/test.h
11
    user/test.c
12
    )
13

14
# Include-Verzeichnisse festlegen
15
target_include_directories(MeinProjekt PRIVATE
16
    user
17
    )

Der Fehler beim compilieren:

fatal error: user/test.h: No such file or directory

Der code der main.c:

1
#include "user/test.h"
2

3
void app_main(void)
4
{
5

6
test();
7

8
}

Der ORdner user ist ausserdem in C/C++ IntelliSense angegeben.

Der Sourcefile test.c liegt im subfolder src von user, die headerdatei test.h in inc. Und ja, ich habe den Header auch in der Source test.c included.

EDIT: Die Umgebungsvariable IDF_PATH ist auch richtig gesetzt.

#7497754
Lesenswert?

Das ist zwar absolut valides CMake um ein Executable zu basteln, nur leider benutzt Espressif CMake nicht, sondern missbraucht es. Du darfst jetzt noch all den ganzen Spaß lernen den J.S. oben bereits verlinkt hat: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html

Damit bestätigst du genau meine Befürchtungen die ich auf GitHub im ESP-IDF Repo bereits in unzähligen Issues geäußert hab. Das ganze Buildsystem rund um ESP-IDF ist vollkommen verkorkst und unabhängig davon ob man bereits CMake Kentnisse hat oder nicht bekommt man davon einfach nur Kopfweh...

Wenn man bisher keine oder kaum CMake Kentnisse hat, dann ist der Spaß natürlich doppelt groß. CMake selbst ist ja schon der absolute Horror...

/edit Ich hab mal in einem Blogeintrag erklärt was das ESP-IDF Zeug im Hintergrund eigentlich so treibt: https://higaski.at/working-with-or-rather-around-the-esp32-build-system/

#7497760
Lesenswert?

ja, man sollte sich da an das Korsett von IDF gewöhnen. Projektspezifischer Code in das main Verzeichnis, wiederverwendbaren Code als Komponenten in Components. Wenn es ein neues IDF Release gibt können Lösungen die am IDF vorbeigehen wieder kaputt sein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren