Я хочу использовать библиотеку c++ Thrift 0.8.0 в Xcode. Поэтому я настроил бережливость с
./configure --without-java --without-python --without-ruby --without-php --enable-static
Я перетащил статическую библиотеку в свой проект. Затем я установил «Пути поиска заголовков» в «/usr/local/include/thrift» и «/opt/local/include» (потому что я установил boost с помощью macports).
Я могу запустить Thrift Server, как описано здесь
Когда я пытаюсь запустить клиент, он выдает несколько ошибок.
/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]
Может кто-нибудь помочь мне? Спасибо!
ОБНОВЛЕНИЕ
После включения в TSocket.h следующих строк все работает нормально.
#include <sys/socket.h>
#include <arpa/inet.h>