$ g ++ -lthrift -Wall thriftfs.cpp cassandra_constants.cpp Cassandra.cpp cassandra_types.cpp -o thriftfs -I / usr / local / include / thrift -L / usr / local / libIn, включенный из / usr / local / include / thrift /protocol/TProtocol.h:23:0, из /usr/local/include/thrift/TProcessor.h:24, от Кассандры.h: 10, из исходного кода здесь hriftfs.cpp: 4: /usr/local/include/thrift/transport/TTransport.h:34:1: ошибка: «uint32_t» не называет тип /usr/local/include/thrift/transport/TTransport.h:156:29: ошибка: ISO C ++ запрещает объявление «buf» без типа [-fpermissive] В файле, включенном в /usr/local/include/thrift/TProcessor.h:24:0, от Кассандры.h: 10, от thriftfs.cpp: 4: /usr/local/include/thrift/protocol/TProtocol.h:184:1: ошибка: «uint32_t» не называет тип В файле из Cassandra.h: 10: 0, от thriftfs.cpp: 4: /usr/local/include/thrift/TProcessor.h:72:57: ошибка: "uint32_t" не был объявлен В файле из cassandra_types.h: 11: 0, от Кассандры.h: 11, от thriftfs.cpp: 4: /usr/local/include/thrift/TApplicationException.h:94:3: ошибка: «uint32_t» не называет тип В файле от Cassandra.h: 11: 0, от thriftfs.cpp: 4: cassandra_types.h: 85: 16: ошибка: «uint8_t» не называет тип В файле от Cassandra.h: 11: 0, от thriftfs.cpp: 4: cassandra_types.h: 142: 3: ошибка: «uint32_t» не называет тип В файле от Cassandra.h: 11: 0, от thriftfs.cpp: 4: cassandra_types.h: 1478: 16: ошибка: «uint8_t» не называет тип В файле от Cassandra.h: 11: 0, от thriftfs.cpp: 4: cassandra_types.h: 1812: 3: ошибка: «uint32_t» не называет тип В файле, включенном из thriftfs.cpp: 4: 0: Cassandra.h: 217: 3: ошибка: «uint32_t» не называет тип Cassandra.h: 4857: 35: ошибка: «org :: apache :: thrift» не был объявлен Cassandra.h: 4857: 62: ошибка: ожидается ‘,’ или ‘...’ до токена ‘*’ Cassandra.h: 4859: 71: ошибка: невозможно объявить указатель на член 'void' Cassandra.h: 4859: 145: ошибка: неверный аргумент шаблона 2 Cassandra.h: 4859: 145: ошибка: неверный аргумент шаблона 4 Cassandra.h: 4860: 45: ошибка: «org :: apache :: thrift» не был объявлен Cassandra.h: 4860: 72: ошибка: ожидается ‘,’ или ‘...’ до токена ‘*’ Cassandra.h: 4935: 42: ошибка: thrift не является членом org :: apache Cassandra.h: 4935: 42: примечание: предлагаемая альтернатива: /usr/local/include/thrift/Thrift.h:75:37: примечание: "apache :: thrift" Cassandra.h: 4935: 42: ошибка: thrift не является членом org :: apache Cassandra.h: 4935: 42: примечание: предлагаемая альтернатива: /usr/local/include/thrift/Thrift.h:75:37: примечание: "apache :: thrift" Cassandra.h: 4935: 77: ошибка: неверный аргумент шаблона 1 Cassandra.h: 4935: 105: ошибка: thrift не является членом org :: apache Cassandra.h: 4935: 105: примечание: предлагаемая альтернатива: /usr/local/include/thrift/Thrift.h:75:37: примечание: "apache :: thrift" Cassandra.h: 4935: 105: ошибка: thrift не является членом org :: apache Cassandra.h: 4935: 105: примечание: предлагаемая альтернатива: /usr/local/include/thrift/Thrift.h:75:37: примечание: "apache :: thrift" Cassandra.h: 4935: 140: ошибка: неверный аргумент шаблона 1 Cassandra.h: В конструкторе ‘org :: apache :: cassandra :: CassandraProcessor :: CassandraProcessor (boost :: shared_ptr)’: Cassandra.h: 4898: 49: ошибка: назначение местоположения только для чтения '' логин '[((org :: apache :: cassandra :: CassandraProcessor *) this) -> org :: apache :: cassandra :: CassandraProcessor: : processMap_] Cassandra.h: 4898: 49: ошибка: невозможно преобразовать ‘void (org :: apache :: cassandra :: CassandraProcessor :: *) (int32_t, int) {aka void (org :: apach)
Добавьте следующие определения:
g++ -DHAVE_NETINET_IN_H -DHAVE_INTTYPES_H ...
Или добавить #include <stdint.h>
перед включением Thrift.h
в вашем коде.
Смотрите обсуждение на БЕРЕЖЛИВОСТЬ-1326. Проблема предположительно исправлена в 0,9.
Похоже, ваша проблема — проблема компилятора.
Не удается найти тип «uint32_t»
Есть еще один вопрос на SO по этому поводу:
Ошибка: идентификатор uint32_t не найден
Цитируется от пользователя templatetypedef
Этот тип определен в заголовке C, который в настоящее время не
часть стандарта C ++. Согласно странице Википедии на
заголовок, он не поставляется с Visual Studio до VS2010.В то же время, вы могли бы подделать свою собственную версию
заголовок, добавив typedefs, которые сопоставляют пользовательские целочисленные типы Microsoft с
типы, ожидаемые C. Например:typedef __int32 int32_t; typedef unsigned __int32 uint32_t; / * …
и т.д. … * / Надеюсь, это поможет!