Fehler beim kompilieren-Thrift-Server
Ich bin neu in second Hand : http://thrift.apache.org/
Ich bin mit CentOS und "vielleicht" installieren Sparsamkeit erfolgreich. Die ich verwenden kann, Sparsamkeit codes erzeugen.
Aber Folgen Sie den Anweisungen: http://wiki.apache.org/thrift/ThriftUsageC%2B%2B
Ich bekomme die Fehlermeldung beim kompilieren Something_server.cpp
Jemand weiß pls helfen Sie mir, um, den Grund herauszufinden. Ich habe keine Ahnung. Vielen Dank
Ich benutze Sparsamkeit zu lassen, PHP Aufruf von C++ zu tun, einen job, nur C++ machen kann.
Alle haben ein anderen Vorschlag für mich ? Danke
[root@localhost gen-cpp]# g++ -Wall -I/usr/local/include/secondhand -*.cpp -lthrift -o etwas
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::writeI16(int16_t)â:
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:147: Fehler: es gibt keine Argumente zu âhtonsâ, die abhängig von einem template-parameter, also eine Erklärung der âhtonsâ verfügbar sein muss
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:147: Fehler: (wenn Sie â-fpermissiveâ, G++ akzeptiert Sie Ihren code, sondern erlaubt die Verwendung eines nicht deklarierten namens ist veraltet)
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::writeI32(int32_t)â:
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:154: Fehler: es gibt keine Argumente zu âhtonlâ, die abhängig von einem template-parameter, also eine Erklärung der âhtonlâ verfügbar sein muss
Something_server.cpp: In member function âvirtual int32_t SomethingHandler::ping()â:
Something_server.cpp:28: Warnung: keine return statement in function returning non-void
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::writeI16(int16_t) [mit Transport_ = apache::second Hand::transport::TTransport]â:
/usr/local/include/Sparsamkeit/Protokoll/TVirtualProtocol.h:401: instanziiert von âuint32_t apache::second Hand::protocol::TVirtualProtocol::writeI16_virt(int16_t) [mit Protocol_ = apache::second Hand::protocol::TBinaryProtocolT, Super_ = apache::second Hand::protocol::TProtocolDefaults]â
Something_server.cpp:42: instanziiert von hier
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:147: Fehler: âhtonsâ war nicht deklariert, in diesem Umfang
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::writeI32(int32_t) [mit Transport_ = apache::second Hand::transport::TTransport]â:
/usr/local/include/Sparsamkeit/Protokoll/TVirtualProtocol.h:405: instanziiert von âuint32_t apache::second Hand::protocol::TVirtualProtocol::writeI32_virt(int32_t) [mit Protocol_ = apache::second Hand::protocol::TBinaryProtocolT, Super_ = apache::second Hand::protocol::TProtocolDefaults]â
Something_server.cpp:42: instanziiert von hier
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:154: Fehler: âhtonlâ war nicht deklariert, in diesem Umfang
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::readI16(int16_t&) [mit Transport_ = apache::second Hand::transport::TTransport]â:
/usr/local/include/Sparsamkeit/Protokoll/TVirtualProtocol.h:499: instanziiert von âuint32_t apache::second Hand::protocol::TVirtualProtocol::readI16_virt(int16_t&) [mit Protocol_ = apache::second Hand::protocol::TBinaryProtocolT, Super_ = apache::second Hand::protocol::TProtocolDefaults]â
Something_server.cpp:42: instanziiert von hier
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:362: Fehler: ântohsâ war nicht deklariert, in diesem Umfang
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::readI32(int32_t&) [mit Transport_ = apache::second Hand::transport::TTransport]â:
/usr/local/include/Sparsamkeit/Protokoll/TVirtualProtocol.h:503: instanziiert von âuint32_t apache::second Hand::protocol::TVirtualProtocol::readI32_virt(int32_t&) [mit Protocol_ = apache::second Hand::protocol::TBinaryProtocolT, Super_ = apache::second Hand::protocol::TProtocolDefaults]â
Something_server.cpp:42: instanziiert von hier
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:373: Fehler: ântohlâ war nicht deklariert, in diesem Umfang
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::writeI16(int16_t)â:
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:147: Fehler: es gibt keine Argumente zu âhtonsâ, die abhängig von einem template-parameter, also eine Erklärung der âhtonsâ verfügbar sein muss
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:147: Fehler: (wenn Sie â-fpermissiveâ, G++ akzeptiert Sie Ihren code, sondern erlaubt die Verwendung eines nicht deklarierten namens ist veraltet)
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::writeI32(int32_t)â:
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:154: Fehler: es gibt keine Argumente zu âhtonlâ, die abhängig von einem template-parameter, also eine Erklärung der âhtonlâ verfügbar sein muss
Something_server.skeleton.cpp: In member function âvirtual int32_t SomethingHandler::ping()â:
Something_server.Skelett.cpp:28: Warnung: keine return statement in function returning non-void
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::writeI16(int16_t) [mit Transport_ = apache::second Hand::transport::TTransport]â:
/usr/local/include/Sparsamkeit/Protokoll/TVirtualProtocol.h:401: instanziiert von âuint32_t apache::second Hand::protocol::TVirtualProtocol::writeI16_virt(int16_t) [mit Protocol_ = apache::second Hand::protocol::TBinaryProtocolT, Super_ = apache::second Hand::protocol::TProtocolDefaults]â
Something_server.Skelett.cpp:42: instanziiert von hier
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:147: Fehler: âhtonsâ war nicht deklariert, in diesem Umfang
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::writeI32(int32_t) [mit Transport_ = apache::second Hand::transport::TTransport]â:
/usr/local/include/Sparsamkeit/Protokoll/TVirtualProtocol.h:405: instanziiert von âuint32_t apache::second Hand::protocol::TVirtualProtocol::writeI32_virt(int32_t) [mit Protocol_ = apache::second Hand::protocol::TBinaryProtocolT, Super_ = apache::second Hand::protocol::TProtocolDefaults]â
Something_server.Skelett.cpp:42: instanziiert von hier
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc:154: Fehler: âhtonlâ war nicht deklariert, in diesem Umfang
/usr/local/include/Sparsamkeit/Protokoll/TBinaryProtocol.tcc: In member function âuint32_t apache::second Hand::protocol::TBinaryProtocolT::readI16(int16_t&) [mit Transport_ = apache::second Hand::transport::TTransport]â:
- Ich bin in der gleichen Boot - CentOS, Secondhand-von der Quelle erstellen
Du musst angemeldet sein, um einen Kommentar abzugeben.
scheint, als ob Sie ein problem haben, mit htons(), htonl () - Funktionen fehlen, haben Sie den richtigen header?
#include <arpa/inet.h>
Auf meinem system (Ubuntu 10.10), htons() und htonl() deklariert in netinet/in.h.
Ich hatte den gleichen Fehler, und ich habe es behoben durch hinzufügen von -DHAVE_NETINET_IN_H zu der g++ - Kommandozeilen-Parameter beim erstellen meiner Thrift-server.
Dies bewirkt, dass der Präprozessor include netinet/in.h in Sparsamkeit/Protokoll/TPrototol.h, so dass die hton* Erklärungen werden sichtbar an den compiler.
TProtocol.h hat die folgenden Zeilen, die der compiler Fehler, wenn HAVE_NETINET_IN_H ist nicht definiert.
Könnte dies ein bug in der Sparsamkeit configure-Skript, das irgendwie überspringt definieren.
Vom Gmane müssen Sie ein paar #defines.
Fügen Sie in
-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H
zu Ihrem Makefile.ZB. In der Makefile