【发布时间】:2012-01-14 04:57:31
【问题描述】:
我是 Thrift 的新手:http://thrift.apache.org/ 我正在使用 CentOS,并且“也许”成功安装了 Thrift。我可以使用 Thrift 来生成代码。 但请遵循说明:http://wiki.apache.org/thrift/ThriftUsageC%2B%2B 编译 Something_server.cpp 时出现错误 有人知道请帮我找出原因。我不知道。非常感谢
我用thrift让PHP调用C++来做只有C++才能做的工作。 有人对我有其他建议吗?谢谢
[root@localhost gen-cpp]# g++ -Wall -I/usr/local/include/thrift *.cpp -lthrift -o something /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::writeI16(int16_t)â中: /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147:错误:“htons”没有依赖于模板参数的参数,因此“htons”的声明必须可用 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147:错误:(如果您使用“-fpermissive”,G++ 将接受您的代码,但不允许使用未声明的名称) /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::writeI32(int32_t)â中: /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:154:错误:“htonl”没有依赖于模板参数的参数,因此“htonl”的声明必须可用 Something_server.cpp:在成员函数“virtual int32_t SomethingHandler::ping()”中: Something_server.cpp:28:警告:函数中没有返回语句返回非 void /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::writeI16(int16_t) [with Transport_ = apache::thrift::transport::TTransport] A: /usr/local/include/thrift/protocol/TVirtualProtocol.h:401:从âuint32_t apache::thrift::protocol::TVirtualProtocol::writeI16_virt(int16_t) [with Protocol_ = apache::thrift::protocol::TBinaryProtocolT , Super_ = apache::thrift::protocol::TProtocolDefaults]â Something_server.cpp:42:从这里实例化 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147:错误:“htons”未在此范围内声明 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::writeI32(int32_t) [with Transport_ = apache::thrift::transport::TTransport] A: /usr/local/include/thrift/protocol/TVirtualProtocol.h:405:从âuint32_t apache::thrift::protocol::TVirtualProtocol::writeI32_virt(int32_t) [with Protocol_ = apache::thrift::protocol::TBinaryProtocolT , Super_ = apache::thrift::protocol::TProtocolDefaults]â Something_server.cpp:42:从这里实例化 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:154:错误:未在此范围内声明“htonl” /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::readI16(int16_t&) [with Transport_ = apache::thrift::transport::TTransport] A: /usr/local/include/thrift/protocol/TVirtualProtocol.h:499:从âuint32_t apache::thrift::protocol::TVirtualProtocol::readI16_virt(int16_t&) [with Protocol_ = apache::thrift::protocol::TBinaryProtocolT , Super_ = apache::thrift::protocol::TProtocolDefaults]â Something_server.cpp:42:从这里实例化 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:362:错误:ântohsâ 未在此范围内声明 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::readI32(int32_t&) [with Transport_ = apache::thrift::transport::TTransport] A: /usr/local/include/thrift/protocol/TVirtualProtocol.h:503:从âuint32_t apache::thrift::protocol::TVirtualProtocol::readI32_virt(int32_t&) [with Protocol_ = apache::thrift::protocol::TBinaryProtocolT , Super_ = apache::thrift::protocol::TProtocolDefaults]â Something_server.cpp:42:从这里实例化 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:373:错误:未在此范围内声明ântohlâ /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::writeI16(int16_t)â中: /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147:错误:“htons”没有依赖于模板参数的参数,因此“htons”的声明必须可用 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147:错误:(如果您使用“-fpermissive”,G++ 将接受您的代码,但不允许使用未声明的名称) /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::writeI32(int32_t)â中: /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:154:错误:“htonl”没有依赖于模板参数的参数,因此“htonl”的声明必须可用 Something_server.skeleton.cpp:在成员函数“virtual int32_t SomethingHandler::ping()”中: Something_server.skeleton.cpp:28:警告:函数中没有返回语句返回非 void /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::writeI16(int16_t) [with Transport_ = apache::thrift::transport::TTransport] A: /usr/local/include/thrift/protocol/TVirtualProtocol.h:401:从âuint32_t apache::thrift::protocol::TVirtualProtocol::writeI16_virt(int16_t) [with Protocol_ = apache::thrift::protocol::TBinaryProtocolT , Super_ = apache::thrift::protocol::TProtocolDefaults]â Something_server.skeleton.cpp:42:从这里实例化 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147:错误:“htons”未在此范围内声明 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::writeI32(int32_t) [with Transport_ = apache::thrift::transport::TTransport] A: /usr/local/include/thrift/protocol/TVirtualProtocol.h:405:从âuint32_t apache::thrift::protocol::TVirtualProtocol::writeI32_virt(int32_t) [with Protocol_ = apache::thrift::protocol::TBinaryProtocolT , Super_ = apache::thrift::protocol::TProtocolDefaults]â Something_server.skeleton.cpp:42:从这里实例化 /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:154:错误:未在此范围内声明“htonl” /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:在成员函数âuint32_t apache::thrift::protocol::TBinaryProtocolT::readI16(int16_t&) [with Transport_ = apache::thrift::transport::TTransport]一:
【问题讨论】:
-
我在同一条船上 - CentOS,Thrift 从源代码构建