01-30-2014, 04:08 PM
Salut,
Comme certains le savent, j'ai installé Debian sur mon Mele A2000G, en version stable.
J'y ai compilé les paquets pour Enlightenment (en utilisant les sources provenant d'unstable), ça m'a pris de longues heures.
Je tente maintenant de compiler calaos_base. Sur l'issue que j'avais ouvert sur GitHub (https://github.com/calaos/calaos_base/issues/25), naguirre/captainigloo a indiqué qu'avec GCC 4.7 ça pose problème. En effet, ça pose problème.
J'ai déjà patché de la manière suivante :
J'espère n'avoir pas fait de connerie, vu que je n'ai jamais fait de C++ je n'ai aucune certitude.
Je rencontre maintenant l'erreur suivante, que je ne sais pas "corriger". Quelqu'un pourrait me guider ?
Comme certains le savent, j'ai installé Debian sur mon Mele A2000G, en version stable.
J'y ai compilé les paquets pour Enlightenment (en utilisant les sources provenant d'unstable), ça m'a pris de longues heures.
Je tente maintenant de compiler calaos_base. Sur l'issue que j'avais ouvert sur GitHub (https://github.com/calaos/calaos_base/issues/25), naguirre/captainigloo a indiqué qu'avec GCC 4.7 ça pose problème. En effet, ça pose problème.
J'ai déjà patché de la manière suivante :
Code:
diff --git a/src/bin/calaos_server/JsonApiClient.cpp b/src/bin/calaos_server/JsonApiClient.cpp
index ef70fc8..aac7586 100644
--- a/src/bin/calaos_server/JsonApiClient.cpp
+++ b/src/bin/calaos_server/JsonApiClient.cpp
@@ -173,6 +173,11 @@ JsonApiClient::JsonApiClient(Ecore_Con_Client *cl):
http_parser_init(parser, HTTP_REQUEST);
parser->data = this;
+ // moved initialization to the constructor
+ parse_done = false;
+ has_field = false;
+ has_value = false;
+
Utils::logger("network") << Priority::DEBUG << "JsonApiClient::JsonApiClient("
<< this << "): Ok" << log4cpp::eol;
}
diff --git a/src/bin/calaos_server/JsonApiClient.h b/src/bin/calaos_server/JsonApiClient.h
index 6f4544e..eb58adb 100644
--- a/src/bin/calaos_server/JsonApiClient.h
+++ b/src/bin/calaos_server/JsonApiClient.h
@@ -45,7 +45,7 @@ using namespace Calaos;
http_parser_settings parser_settings;
http_parser *parser;
- bool parse_done = false;
+ bool parse_done;
unsigned char request_method;
unordered_map<string, string> request_headers;
@@ -58,7 +58,7 @@ using namespace Calaos;
void CloseConnection();
//for parsing purposes
- bool has_field = false, has_value = false;
+ bool has_field, has_value;
string hfield, hvalue;
string bodymessage;
string parse_url;
J'espère n'avoir pas fait de connerie, vu que je n'ai jamais fait de C++ je n'ai aucune certitude.
Je rencontre maintenant l'erreur suivante, que je ne sais pas "corriger". Quelqu'un pourrait me guider ?
Code:
JsonApiClient.cpp: In member function ‘json_t* JsonApiClient::buildJsonRoomIO(Calaos::Room*) [with T = Calaos::Input, json_t = json_t]’:
JsonApiClient.cpp:463:81: instantiated from here
JsonApiClient.cpp:407:22: error: no matching function for call to ‘Calaos::Room::get_size()’
JsonApiClient.cpp:407:22: note: candidates are:
./Room.h:78:21: note: template<class T, typename std::enable_if<std::is_same<T, Calaos::Input*>::value, void>::type* <anonymous> > int Calaos::Room::get_size()
./Room.h:82:21: note: template<class T, typename std::enable_if<std::is_same<T, Calaos::Output*>::value, void>::type* <anonymous> > int Calaos::Room::get_size()
JsonApiClient.cpp:410:44: error: no matching function for call to ‘Calaos::Room::get_io(int&)’
JsonApiClient.cpp:410:44: note: candidates are:
./Room.h:86:19: note: template<class T, typename std::enable_if<std::is_same<T, Calaos::Input*>::value, void>::type* <anonymous> > T Calaos::Room::get_io(int)
./Room.h:90:19: note: template<class T, typename std::enable_if<std::is_same<T, Calaos::Output*>::value, void>::type* <anonymous> > T Calaos::Room::get_io(int)
JsonApiClient.cpp: In member function ‘json_t* JsonApiClient::buildJsonRoomIO(Calaos::Room*) [with T = Calaos::Output, json_t = json_t]’:
JsonApiClient.cpp:464:83: instantiated from here
JsonApiClient.cpp:407:22: error: no matching function for call to ‘Calaos::Room::get_size()’
JsonApiClient.cpp:407:22: note: candidates are:
./Room.h:78:21: note: template<class T, typename std::enable_if<std::is_same<T, Calaos::Input*>::value, void>::type* <anonymous> > int Calaos::Room::get_size()
./Room.h:82:21: note: template<class T, typename std::enable_if<std::is_same<T, Calaos::Output*>::value, void>::type* <anonymous> > int Calaos::Room::get_size()
JsonApiClient.cpp:410:44: error: no matching function for call to ‘Calaos::Room::get_io(int&)’
JsonApiClient.cpp:410:44: note: candidates are:
./Room.h:86:19: note: template<class T, typename std::enable_if<std::is_same<T, Calaos::Input*>::value, void>::type* <anonymous> > T Calaos::Room::get_io(int)
./Room.h:90:19: note: template<class T, typename std::enable_if<std::is_same<T, Calaos::Output*>::value, void>::type* <anonymous> > T Calaos::Room::get_io(int)
Sébastien Maccagnoni-Munch - Maison en autorénovation, on ne garde que les murs
Automate Wago 750-849 (mais pas de KNX), centrale Beaglebone Black, Calaos 2.0, détecteurs de mouvement HC-SR501, éclairage LED, gradation DALI
Sonorisation Squeezebox avec Raspberry Pi (piCorePlayer), Kia Soul EV en charge toutes les nuits...
Automate Wago 750-849 (mais pas de KNX), centrale Beaglebone Black, Calaos 2.0, détecteurs de mouvement HC-SR501, éclairage LED, gradation DALI
Sonorisation Squeezebox avec Raspberry Pi (piCorePlayer), Kia Soul EV en charge toutes les nuits...