簡體   English   中英

編譯錯誤g ++

[英]Compilation error g++

我試圖從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);
 }

基於代碼的快速掃描

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;
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM