[SOLVED] Multiple source files & including MySensors.h problem
-
Hi,
I am trying to create a sketch with multiple source files (to keep my own classes definitions out of main sketch file), but I am not able to includeMySensors.h
.Lets consider the following GatewayESP8266 example (4 files) for NodeMCU 0.9 board:
I have the main sketch file
GatewayESP8266.ino
// GatewayESP8266.ino ... #include "myownconfig.h" #include <MySensors.h> ...
MySensor config file
myownconfig.h
// myownconfig.h #ifndef MYOWNCONFIG_H #define MYOWNCONFIG_H // Enable debug prints to serial monitor #define MY_DEBUG ... #endif
and my test class header and source files
test.cpp
andtest.h
// test.cpp #include "test.h"
// test.h #ifndef TEST_H #define TEST_H #include "myownconfig.h" #include <MySensors.h> class Test { MyMessage &message; }; #endif
Compiling (board NodeMCU 0.9) gives a bunch of errors:
sketch/test.cpp.o: In function `__gdb_do_break': /Users/hynekbaran/Documents/Arduino-ESP/libraries/MySensors/core/MyGatewayTransport.cpp:69: multiple definition of `g_cont' sketch/GatewayESP8266.ino.cpp.o:/Users/hynekbaran/Documents/Arduino-ESP/libraries/MySensors/core/MySensorsCore.h:428: first defined here sketch/test.cpp.o: In function `__gdb_do_break': /Users/hynekbaran/Documents/Arduino-ESP/libraries/MySensors/core/MyGatewayTransport.cpp:69: multiple definition of `_ethernetServer' sketch/GatewayESP8266.ino.cpp.o:/Users/hynekbaran/Documents/Arduino-ESP/libraries/MySensors/core/MySensorsCore.h:428: first defined here sketch/test.cpp.o: In function `hwInit()': /Users/hynekbaran/Documents/Arduino-ESP/libraries/MySensors/core/MyGatewayTransport.cpp:69: multiple definition of `hwInit()' sketch/GatewayESP8266.ino.cpp.o:/Users/hynekbaran/Documents/Arduino-ESP/libraries/MySensors/core/MyHwESP8266.cpp:24: first defined here sketch/test.cpp.o: ... collect2: error: ld returned 1 exit status exit status 1 Error compiling for board NodeMCU 0.9 (ESP-12 Module).
The same problem appears with ArduinoPro DimmableLigth test project.Thanks for help!
-
Hi, I think you have a similar issue to mine at https://forum.mysensors.org/topic/6084/including-mysensors-h-in-multiple-files. You don't want to include MySensors.h in the other header files but individual MySensors headers containing the functions you need e.g.
#include <core/MySensorsCore.h>
-
@user2684 Yes, that is the solution. Thanks a lot!