TNonblockingServer.h:76:23: 錯誤:一個宣告指定了多個型別 英文提示 multiple types in one declaration
阿新 • • 發佈:2018-12-13
錯誤資訊:
/usr/local/include/thrift/server/TNonblockingServer.h:76:23: 錯誤:一個宣告指定了多個型別 typedef THRIFT_SOCKET evutil_socket_t
其中的相關程式碼如下:
#ifdef LIBEVENT_VERSION_NUMBER #define LIBEVENT_VERSION_MAJOR (LIBEVENT_VERSION_NUMBER >> 24) #define LIBEVENT_VERSION_MINOR ((LIBEVENT_VERSION_NUMBER >> 16) & 0xFF) #define LIBEVENT_VERSION_REL ((LIBEVENT_VERSION_NUMBER >> 8) & 0xFF) #else // assume latest version 1 series #define LIBEVENT_VERSION_MAJOR 1 #define LIBEVENT_VERSION_MINOR 14 #define LIBEVENT_VERSION_REL 13 #define LIBEVENT_VERSION_NUMBER \ ((LIBEVENT_VERSION_MAJOR << 24) | (LIBEVENT_VERSION_MINOR << 16) | (LIBEVENT_VERSION_REL << 8)) #endif #if LIBEVENT_VERSION_NUMBER < 0x02000000 typedef THRIFT_SOCKET evutil_socket_t; #endif
錯誤原因分析
根據提示這是個語法錯誤:
1、重名問題,造成了重複定義
2、在相關的定義後面缺少分號“;”,導致語法錯誤
3、 libevent版本定義問題 在標頭檔案中加入正確的定義亦可,比如在自己的標頭檔案中加入
#ifndef LIBEVENT_VERSION_NUMBER
#define #ifdef LIBEVENT_VERSION_NUMBER 0x02100000
#endif
沒有找到語法的源頭,暫時先用這種方式解決一下燃眉之急。