Ошибка компиляции g ++

0

Я попытался скомпилировать этот пример с https://github.com/augcampos/asterisk-cpp/wiki/Examples, но я получаю эту ошибку:

root@debian:~# g++ TesteCpp.cpp -o tt -lasteriskcpp
TesteCpp.cpp: In function ‘int main():
TesteCpp.cpp:13:39: error: invalid conversion from ‘void (*)(asteriskcpp::ManagerEvent*) to ‘asteriskcpp::onManagerEventCallback_t {aka void (*)(const asteriskcpp::ManagerEvent&)} [-fpermissive]
In file included from TesteCpp.cpp:4:0:
/usr/local/include/asteriskcpp/manager/ManagerConnection.h:49:14: error:   initializing argument 1 of ‘void asteriskcpp::ManagerConnection::addEventCallback(asteriskcpp::onManagerEventCallback_t) [-fpermissive]

Как это исправить?

TesteCpp.cpp:

//TesteCpp.cpp
#include <iostream>
#include "asteriskcpp/utils/LogHandler.h"
#include "asteriskcpp/manager/ManagerConnection.h"

using namespace asteriskcpp;
void eventCallback(ManagerEvent* me) {
    std::cout << std::endl << "TEST:EVENT" << me->toLog() << std::endl;
} 

int main() {
    ManagerConnection mc;
    mc.addEventCallback(&eventCallback); // add event listener
    if (mc.connect("192.168.1.6")) {
        if (mc.login("admin", "zzz")) {
            mc.logoff();
        }
    }
    mc.disconnect();
    return (0);
 }
  • 0
    не могли бы вы предоставить больше кода, пожалуйста? По крайней мере TesteCpp.cpp (около строки 13)?
  • 0
    Я обновил свой пост
Показать ещё 1 комментарий
Теги:

1 ответ

5
Лучший ответ

Основываясь на быстрой проверке кода

void eventCallback(ManagerEvent* me) {
    std::cout << std::endl << "TEST:EVENT" << me->toLog() << std::endl;
} 

должно быть

void eventCallback(const ManagerEvent& me) {
    std::cout << std::endl << "TEST:EVENT" << me.toLog() << std::endl;
} 
  • 0
    Я получаю еще одну ошибку
  • 0
    @linuxcdeveloper Тогда задайте другой вопрос ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню