[英]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.