Новости:

Форуму исполнилось 12 лет!

Мы в матрице .
Мы в телеге .

Главное меню

libuv ошибка

Автор kvip, 20 октября 2014, 15:05:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kvip

При компиляции одного проекта компилятор выдает ошибку.

make all
g++ --std=c++11 -o run -pthread -lssl -lcrypto main.cpp src/*.cpp
src/TcpServer.cpp: In member function 'void net::TcpServer::start()':
src/TcpServer.cpp:27:57: error: invalid conversion from 'void (*)(uv_async_t*, int) {aka void (*)(uv_async_s*, int)}' to 'uv_async_cb {aka void (*)(uv_async_s*)}' [-fpermissive]
         uv_async_init(m_loop, &stopEvent, _onServerClose);
                                                         ^
In file included from src/TcpServer.h:13:0,
                 from src/TcpServer.cpp:9:
/usr/include/uv.h:1435:15: error:   initializing argument 3 of 'int uv_async_init(uv_loop_t*, uv_async_t*, uv_async_cb)' [-fpermissive]
UV_EXTERN int uv_async_init(uv_loop_t*,
               ^
make: *** [all] Error 1


В чем может быть проблема?

Graf

#1
Формат вызова функции uv_async_init в .cpp не соответствует ее описанию в uv.h.
Думаю, этой функции передается 3 параметра, а описано 2.
uv.h нет под рукой чтобы глянуть.

kvip


Graf

Что я увидел:
_onServerClose - функция, а используется как переменная.

static void _onServerClose(uv_async_t * stopEvent, int status);

Какие значения нужно ей передать хз.
Возможно &stopEvent и какое-то число (или функция возвращающая это число).