Hallo,
ich habe meinen Code in Visual Studio Code geschrieben und würde gern ein paar Teile in separate Bibliotheken auslagern.
Hier mein Code (Minimalbeispiel):
app.ino
#include "lib/tools.h"
void setup(){
tools::init();
}
void loop(){
}
tools.h
#ifndef TOOLS_H
#define TOOLS_H
#include <SPIFFS.h>
class tools{
public:
static void init();
...
};
#endif
tools.cpp
#include "tools.h"
void tools::init(){
SPIFFS.begin(true);
}
Beim Kompilieren bekomme ich immer einen Linker-Error:
sketch\app.ino.cpp.o:(.literal._Z5setupv+0x0): undefined reference to `tools::init()'
sketch\app.ino.cpp.o: In function `setup()':
.../app/app.ino:14: undefined reference to `tools::init()'
collect2.exe: error: ld returned 1 exit status
exit status 1
Wenn ich statt "lib/tools.h" die cpp-Datei "lib/tools.cpp" einbinde, dann funktioniert es, aber dann wird ja immer alles kompiliert (nach meinem Verständnis)...
Normalerweise muss ich das doch irgendwo beim Kompiler nochmal angeben, oder? Aber ich finde nichts...
Die Fehlerausgabe ist in der Arduino IDE und in Visual Studio Code die gleiche.
Kann mir jemand helfen?