在Xcode中使用Thrift C ++库

时间:2012-01-26 13:01:43

标签: c++ xcode thrift

我想在Xcode中使用Thrift 0.8.0 c ++库。因此我用

配置了thrift
./configure --without-java --without-python --without-ruby --without-php --enable-static

我将静态库拖到我的项目中。然后我将“Header Search Paths”设置为“/ usr / local / include / thrift”和“/ opt / local / include”(因为我通过macports安装了boost)。

我可以按照here

所述运行Thrift服务器

当我尝试运行客户端时,会抛出几个错误。

/usr/local/include/thrift/transport/TSocket.h

 sockaddr* getCachedAddress(socklen_t* len) const;

/usr/local/include/thrift/transport/TSocket.h:216:3:错误:未知类型名称'sockaddr'

void setCachedAddress(const sockaddr* addr, socklen_t len);

/usr/local/include/thrift/transport/TSocket.h:216:30:错误:未知类型名称'socklen_t'

void setCachedAddress(const sockaddr* addr, socklen_t len);

/usr/local/include/thrift/transport/TSocket.h:237:31:错误:未知类型名称'sockaddr'

 void setCachedAddress(const sockaddr* addr, socklen_t len);

/usr/local/include/thrift/transport/TSocket.h:237:47:错误:未知类型名称'socklen_t'

/usr/local/include/thrift/transport/TSocket.h:290:5:错误:未知类型名称'sockaddr_in'

  union {
sockaddr_in ipv4;
sockaddr_in6 ipv6;
} cachedPeerAddr_;

/usr/local/include/thrift/transport/TSocket.h:291:5:错误:未知类型名称'sockaddr_in6'

boost::shared_ptr<TTransport> transport(new TBufferedTransport(socket));

... / ThriftClient / ThriftClient / Something_client.cpp ... / ThriftClient / ThriftClient / Something_client.cpp:15:49:{15:68-15:74}:错误:没有用于初始化'apache :: thrift :: transport :: TBufferedTransport'[3] <的匹配构造函数/ p>

任何人都可以帮助我吗?谢谢!

更新

在TSocket.h中包含以下几行后,一切正常。

#include <sys/socket.h>
#include <arpa/inet.h>

1 个答案:

答案 0 :(得分:0)

#include <thrift/config.h> 

或者只是

#define HAVE_CONFIG_H 1