Skip to content
This repository has been archived by the owner on Jan 11, 2020. It is now read-only.

0.1.8 broken? #50

Open
pvdh opened this issue Apr 16, 2018 · 4 comments
Open

0.1.8 broken? #50

pvdh opened this issue Apr 16, 2018 · 4 comments

Comments

@pvdh
Copy link

pvdh commented Apr 16, 2018

Ich scheitere gerade nachhaltig beim Versuch, basecamp zu nutzen. Eigentlich bin ich ganz naiv: Basecamp und die Abhängigkeiten eingebunden und das Beispiel kompiliert.

`#include <Basecamp.hpp>
Basecamp iot;

void setup() {
iot.begin();
//The mqtt object is an instance of Async MQTT Client. See it's documentation for details.
iot.mqtt.subscribe("test/lol",2);

//Use the web object to add elements to the interface
iot.web.addInterfaceElement("color", "input", "", "#configform", "LampColor");
iot.web.setInterfaceElementAttribute("color", "type", "text");

}

void loop() {
//your code
}`

Leider liefert das Fehlermeldungen, los geht es mit "undefined reference to Basecamp::begin(String)", wobei das Beispiel mit iot.begin() ja gar nichts übergibt.

sketch/sketch_apr16a.ino.cpp.o:(.literal._Z5setupv+0x2c): undefined reference to Basecamp::begin(String)'
sketch/sketch_apr16a.ino.cpp.o:(.literal._Z5setupv+0x30): undefined reference to WebServer::addInterfaceElement(String const&, String, String, String, String)' sketch/sketch_apr16a.ino.cpp.o:(.literal._Z5setupv+0x34): undefined reference to WebServer::setInterfaceElementAttribute(String const&, String const&, String)'
sketch/sketch_apr16a.ino.cpp.o:(.literal.startup._GLOBAL__sub_I_iot+0x4): undefined reference to Basecamp::Basecamp(Basecamp::SetupModeWifiEncryption, Basecamp::ConfigurationUI)' sketch/sketch_apr16a.ino.cpp.o: In function setup()':
/home/patrick/Arduino/sketch_apr16a/sketch_apr16a.ino:5: undefined reference to Basecamp::begin(String)'

Vor zwei Monaten hat das alles besser funktioniert, da war ich aber bei den Abhängigkeiten sicherlich auf älteren Versionsständen. Mit welchen Versionen ganz konkret ist die Bibliothek getestet?

Viele Grüße
Patrick

@merlinschumacher
Copy link
Contributor

Hallo Patrick,

hast Du die Master-Version genommen oder die Release-Fassung aus dem Arduino-Bibliotheksmanager?

@pvdh
Copy link
Author

pvdh commented Apr 17, 2018

Hallo Merlin,

gestern habe ich viel nacheinander probiert, unterschiedliche Versionen der unterschiedlichen Bibliotheken, in der Regel aus dem Arduino-Bibliotheksmanager.

Ich habe jetzt in einem neuen Konto unter Ubunut frisch angefangen.
Installiert sind:
a95fa15b88b8dc4ddb79ac28665f763b arduino-1.8.5-linux64.tar.xz db7cbc5cd273a16b27d46f4d7aa1e07a arduino-esp32-master.zip 286078d192b22cf3779b04cc59f408aa ArduinoJson-master.zip b226b77f9c0c32cd3424f4dadd54423b async-mqtt-client-master.zip 9e84dd3f45c78978fdc4be5a46a330e4 AsyncTCP-master.zip 1b995326fcdc9dcc24e34d950abc72b2 Basecamp-0.1.8.zip 094b3753f48348dfd81c9cc30e2d6874 ESPAsyncWebServer-master.zip
Die aktuelle Ausgabe lautet

/home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.cpp: In lambda function: /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.cpp:72:69: warning: 'typename ArduinoJson::Internals::EnableIf<(! ArduinoJson::Internals::IsArray<T>::value), const char*>::type ArduinoJson::JsonBuffer::strdup(const TString&) [with TString = String; typename ArduinoJson::Internals::EnableIf<(! ArduinoJson::Internals::IsArray<T>::value), const char*>::type = const char*]' is deprecated: char* are duplicated, you don't need strdup() anymore [-Wdeprecated-declarations] element["element"] = _jsonBuffer.strdup(interfaceElement.element); ^ In file included from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/Deserialization/JsonParser.hpp:7:0, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/JsonBufferBase.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/DynamicJsonBuffer.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson.h:9, from /home/esp32/Arduino/libraries/ESPAsyncWebServer-master/src/AsyncJson.h:23, from /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.hpp:16, from /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.cpp:7: /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/Deserialization/../JsonBuffer.hpp:46:52: note: declared here const char *>::type strdup(const TString &src) { ^ /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.cpp:73:59: warning: 'typename ArduinoJson::Internals::EnableIf<(! ArduinoJson::Internals::IsArray<T>::value), const char*>::type ArduinoJson::JsonBuffer::strdup(const TString&) [with TString = String; typename ArduinoJson::Internals::EnableIf<(! ArduinoJson::Internals::IsArray<T>::value), const char*>::type = const char*]' is deprecated: char* are duplicated, you don't need strdup() anymore [-Wdeprecated-declarations] element["id"] = _jsonBuffer.strdup(interfaceElement.id); ^ In file included from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/Deserialization/JsonParser.hpp:7:0, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/JsonBufferBase.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/DynamicJsonBuffer.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson.h:9, from /home/esp32/Arduino/libraries/ESPAsyncWebServer-master/src/AsyncJson.h:23, from /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.hpp:16, from /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.cpp:7: /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/Deserialization/../JsonBuffer.hpp:46:52: note: declared here const char *>::type strdup(const TString &src) { ^ /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.cpp:74:69: warning: 'typename ArduinoJson::Internals::EnableIf<(! ArduinoJson::Internals::IsArray<T>::value), const char*>::type ArduinoJson::JsonBuffer::strdup(const TString&) [with TString = String; typename ArduinoJson::Internals::EnableIf<(! ArduinoJson::Internals::IsArray<T>::value), const char*>::type = const char*]' is deprecated: char* are duplicated, you don't need strdup() anymore [-Wdeprecated-declarations] element["content"] = _jsonBuffer.strdup(interfaceElement.content); ^ In file included from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/Deserialization/JsonParser.hpp:7:0, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/JsonBufferBase.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/DynamicJsonBuffer.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson.h:9, from /home/esp32/Arduino/libraries/ESPAsyncWebServer-master/src/AsyncJson.h:23, from /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.hpp:16, from /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.cpp:7: /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/Deserialization/../JsonBuffer.hpp:46:52: note: declared here const char *>::type strdup(const TString &src) { ^ /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.cpp:75:67: warning: 'typename ArduinoJson::Internals::EnableIf<(! ArduinoJson::Internals::IsArray<T>::value), const char*>::type ArduinoJson::JsonBuffer::strdup(const TString&) [with TString = String; typename ArduinoJson::Internals::EnableIf<(! ArduinoJson::Internals::IsArray<T>::value), const char*>::type = const char*]' is deprecated: char* are duplicated, you don't need strdup() anymore [-Wdeprecated-declarations] element["parent"] = _jsonBuffer.strdup(interfaceElement.parent); ^ In file included from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/Deserialization/JsonParser.hpp:7:0, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/JsonBufferBase.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/DynamicJsonBuffer.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson.hpp:7, from /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson.h:9, from /home/esp32/Arduino/libraries/ESPAsyncWebServer-master/src/AsyncJson.h:23, from /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.hpp:16, from /home/esp32/Arduino/libraries/Basecamp-0.1.8/WebServer.cpp:7: /home/esp32/Arduino/libraries/ArduinoJson-master/src/ArduinoJson/Deserialization/../JsonBuffer.hpp:46:52: note: declared here const char *>::type strdup(const TString &src) { ^ Sketch uses 930946 bytes (71%) of program storage space. Maximum is 1310720 bytes. Global variables use 47876 bytes (16%) of dynamic memory, leaving 247036 bytes for local variables. Maximum is 294912 bytes.
Das hat zwar kompiliert, war aber für mich gestern der Anlass, die unterschiedlichen Versionen über den Bibliotheksmanager durchzupermutieren, um einen stabilen Stand ohne Fehlermeldungen und Warnungen zu erreichen. Das hat vor ein paar Wochen auf einem anderen Rechner ja sauber funktioniert.... Daran bin ich tatsächlich gescheitert und würde sehr interessieren, welche Versionen der benötigten Bibliotheken ordentlich harmonieren.

Viele Grüße
Patrick

@Narsskrarc
Copy link

Wie ist da der Stand?
Ich versuche das Minimal-Programm zu übersetzen:
void setup() { iot.begin(); }

Mit BaseCamp master bekomme ich
/home/hab/Arduino/libraries/Basecamp/mqttGuardInterface.cpp:1:34: fatal error: MqttGuardInterface.hpp: No such file or directory

Mit BaseCamp 0.1.8 kommen obige Warnungen. Die anderen Abhängigkeiten sind auf dem jeweiligen master.

Mein C++ ist leider nicht gut genug, um da durchzusteigen...

@Narsskrarc
Copy link

Narsskrarc commented May 13, 2018

Hrmpf. Jetzt hab ich nochmal einen git checkout 0.1.8 gemacht, und jetzt funktioniert das Übersetzen klaglos.
Nicht, dass ich das nicht vorher schon mal gemacht hätte...
EDV = Experimentelle Daten-Verarbeitung :-)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants