Hallo,
ich möchte die Initialisierungen in meinem Projekt in externe Dateien
auslagern. Mit einfachen Funktionen funktioniert das auch. Allerdings
habe ich ein Problem mit der Initialisierung des WiFi.
So wie es unten dargestellt ist, erhalte ich folgende Fehlermeldung:
/Users/###/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc
/3.0.4-gcc10.3-1757bed/bin/../lib/gcc/xtensa-lx106-elf/10.3.0/../../../.
./xtensa-lx106-elf/bin/ld:
/var/folders/hc/vhmyq3qx3f712vrd66vbv_xh0000gn/T/arduino_build_314809/sk
etch/Test_WiFi_V1.ino.cpp.o:/Users/###/Documents/Arduino/Test_WiFi_V1/Te
st_WiFi_V1.ino:3: multiple definition of `MyServer';
/var/folders/hc/vhmyq3qx3f712vrd66vbv_xh0000gn/T/arduino_build_314809/sk
etch/Test1.cpp.o:/Users/###/Documents/Arduino/Test_WiFi_V1/Test1.cpp:3:
first defined here
collect2: error: ld returned 1 exit status
Bibliothek ESP8266WiFi in Version 1.0 im Ordner:
/Users/###/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/lib
raries/ESP8266WiFi wird verwendet
exit status 1
Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).
Meine Frage dazu. Wie kann ich die Instanz von WiFiServer MyServer(80)
als extern einbinden.
Noch allgemeiner gefragt. Kann ich die Instanzen aus den Arduino/ESP8286
Bibliotheken überhaupt als extern deklarieren?
Lasse ich die extern-Deklaration in der Datei "Test1.cpp" weg, erhalte
ich als Fehlermeldung:
Test1.cpp:6:3: error: 'MyServer' was not declared in this scope; did you
mean 'Server'?
6 | MyServer.begin();
| ^~~~~~~~
| Server
Bibliothek ESP8266WiFi in Version 1.0 im Ordner:
/Users/harald/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/
libraries/ESP8266WiFi wird verwendet
exit status 1
'MyServer' was not declared in this scope; did you mean 'Server'?
Was auch verständlich ist.
Datei "Test_WiFi_V1.ino"
1 | #include "Test1.h"
|
2 |
|
3 | WiFiServer MyServer(80);
|
4 |
|
5 | void setup() {
|
6 | Set_WiFi ();
|
7 | }
|
8 |
|
9 | void loop() {
|
10 |
|
11 | }
|
Datei "Test1.cpp"
1 | #include "Test1.h"
|
2 |
|
3 | extern WiFiServer MyServer(80);
|
4 |
|
5 | void Set_WiFi (void) {
|
6 | MyServer.begin();
|
7 | }
|
8 |
|
9 | void Test1_Loop (void) {
|
10 | }
|
Datei "Test1.h"
1 | #include <ESP8266WiFi.h>
|
2 |
|
3 | void Set_WiFi (void);
|