ошибка: «redisAsyncContext» не называет тип redisAsyncContext * context; - PullRequest
0 голосов
/ 06 августа 2020

Я получаю очень странную ошибку, когда включаю libevent.h. Не удалось найти структуру redisAsyncContext. Это мой файл заголовка.

#include <hiredis/hiredis.h>
#include <hiredis/async.h>
#include <hiredis/adapters/libevent.h>

class RedisMgr :Thread{
public:
    
    static RedisMgr  *getRedisMgr ();
    int Init();
    void Start();
    int End();
    void* run();

    int Publish(int type);
    
private:
    static RedisMgr s_instance;

    bool exitThread;
    
    redis_t Pub_Redis;
    sem_t redis_publock;

    RedisMgr();
    ~RedisMgr ();

    static void pubCallback(redisAsyncContext *c, void *r, void *privdata);
    void pubCallback_Handler(redisAsyncContext *c, void *r, void *privdata);
    static void connectCallback(const redisAsyncContext *c, int status);
    void connectCallback_Handler(const redisAsyncContext *c, int status);
    static void disconnectCallback(const redisAsyncContext *c, int status);
    void disconnectCallback_Handler(const redisAsyncContext *c, int status);
};

Ошибка возникает как из включенного файла libevent.h, так и из ссылки refisAsyncContext, которую я сделал в моем .h

Это ошибка:

/usr/include/hiredis/adapters/libevent.h:11:5: error: 'redisAsyncContext' does not name a type
     redisAsyncContext *context;

src/headers/RedisMgr.h:36:5: error: 'redisAsyncContext' does not name a type
     redisAsyncContext *c;

1 Ответ

0 голосов
/ 07 августа 2020

Я нашел проблему. Каким-то образом asyn c .h был заменен / изменен, и у него больше не было определения структуры redisAsyncContext. Я загрузил соответствующий файл из inte rnet, и сборка прошла нормально. я должен был тщательно проверить его, прежде чем размещать вопрос - mybad

...