Moin, ich bins mal wieder
Da ich in der Sprache C++ doch etwas bewanderter bin, als in reinem C (mit Arduino-Dialekt), habe ich nach ner Möglichkeit gesucht, die standard library irgendwie zu nutzen (Container und so). Glücklicherweise hatte dieses Bedurfnis anscheinend schon jemand vor mir, sodass ich auf diese Lib gestossen bin: GitHub - maniacbug/StandardCplusplus: Standard C++ for Arduino (port of uClibc++).
Die sah mir recht praktisch aus und hat alles, was ich im Moment brauche. Passt also.
Als es nun ans einbinden ging, wurde das ganze schon etwas schwieriger. Wo genau gehört der Ordner nun hin? Ein kurzer Blick in die Readme sagt: Im Sketchbook muss es nen Ordner mit dem Namen "libraries" geben. Bei mir war dies leider nicht der Fall. Na gut, der ist schnell erstellt, und der StandardCplusplus-Ordner war schnell reinkopiert.
Doch die Ernüchterung folgte sofort, als ich eines der beiden Beispiel-Programme (string_vector) testen wollte:
#include <StandardCplusplus.h>
#include <serstream>
#include <string>
#include <vector>
#include <iterator>
using namespace std;
// <iostream> declares cout/cerr, but the application must define them
// because it's up to you what to do with them.
namespace std
{
ohserialstream cout(Serial);
}
vector<string> strings;
void setup(void)
{
Serial.begin(57600);
strings.push_back("Hello,");
strings.push_back("world!");
copy(strings.begin(),strings.end(),ostream_iterator<string>(cout," "));
cout << endl;
}
void loop(void)
{
}
// vim:cin:ai:sts=2 sw=2 ft=cpp
string_vector:12: error: 'ohserialstream' does not name a type
string_vector:15: error: expected constructor, destructor, or type conversion before '<' token
string_vector.cpp: In function 'void setup()':
string_vector:21: error: 'strings' was not declared in this scope
string_vector:23: error: 'ostream_iterator' was not declared in this scope
string_vector:23: error: 'string' was not declared in this scope
string_vector:23: error: 'cout' was not declared in this scope
string_vector:23: error: 'copy' was not declared in this scope
string_vector:24: error: 'endl' was not declared in this scope
Anscheinend wurde also keine der Dateien, die eingebunden werden sollten, gefunden.
Ich gehe davon aus, dass ich den StandardCplusplus-Ordner an den falschen Ort kopiert habe. Hier gibts bestimmt jemande, der die Lib auch nutzt...Wo ist der richtiger Ort für den Ordner? Habe ich irgendwas falsch gemacht?
Ich hoffe, dass mir auch diesesmal wieder geholfen wird
Valentin