Автор Тема: libuv ошибка  (Прочитано 1371 раз)

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

Оффлайн kvip

  • Пользователь
  • *
  • Сообщений: 57
  • Репутация: +0/-0
    • Просмотр профиля
libuv ошибка
« : 20 Октябрь 2014, 15:05:06 »
При компиляции одного проекта компилятор выдает ошибку.

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

  • Администратор
  • Ветеран
  • *
  • Сообщений: 685
  • Репутация: +26/-0
    • Просмотр профиля
    • Slackware
Re: libuv ошибка
« Ответ #1 : 21 Октябрь 2014, 12:01:59 »
Формат вызова функции uv_async_init в .cpp не соответствует ее описанию в uv.h.
Думаю, этой функции передается 3 параметра, а описано 2.
uv.h нет под рукой чтобы глянуть.
« Последнее редактирование: 21 Октябрь 2014, 12:04:23 от Graf »
С кем поведёшься - так тебе и надо!
===== https://slackware.su =====

Оффлайн kvip

  • Пользователь
  • *
  • Сообщений: 57
  • Репутация: +0/-0
    • Просмотр профиля
Re: libuv ошибка
« Ответ #2 : 21 Октябрь 2014, 12:51:25 »
Вот.

Оффлайн Graf

  • Администратор
  • Ветеран
  • *
  • Сообщений: 685
  • Репутация: +26/-0
    • Просмотр профиля
    • Slackware
Re: libuv ошибка
« Ответ #3 : 21 Октябрь 2014, 14:11:19 »
Что я увидел:
_onServerClose - функция, а используется как переменная.

static void _onServerClose(uv_async_t * stopEvent, int status);
Какие значения нужно ей передать хз.
Возможно &stopEvent и какое-то число (или функция возвращающая это число).
С кем поведёшься - так тебе и надо!
===== https://slackware.su =====