最近移植柯老师的示例代码measure/mudp 相关的代码,发现了问题,但是网上也没找到解决方法,很多人有相同问题但是没有最后解决。
1、在Makefile中不加 -fpermissive, 会报错误,说mUdpAgent 不能直接调用UdpAgent(),
在makefile中加入
CCOPT = -Wall -Wno-write-strings -fpermissive 编译能通过,但是运行的时候会出现invalid command name "Agent/TCPSink/mTCPSink"
while executing
"Agent/TCPSink/mTCPSink creat -o83"
因此也是不能通过的。
2、具体解决方案:
在源代码中
mUdpAgent::mUdpAgent() : id_(0), openfile(0)
{
bind("packetSize_", &size_);
UdpAgent::UdpAgent();
}
UdpAgent::UdpAgent()调用是有问题的,改为: mUdpAgent::mUdpAgent() :UdpAgent(), id_(0), openfile(0)
{
bind("packetSize_", &size_);
}
重新编译后,运行通过,不会出现1中的问题。
本文详细介绍了在移植柯老师的示例代码measure/mudp时遇到的两个主要问题及其解决方法。首先,解释了如何在Makefile中使用-fpermissive选项来避免mUdpAgent直接调用UdpAgent()导致的错误。接着,阐述了将UdpAgent::UdpAgent()的调用方式更改为mUdpAgent::mUdpAgent():UdpAgent()的方法,以解决运行时出现的invalidcommandname错误。通过这两个解决方案,实现了代码的顺利编译与运行。

被折叠的 条评论
为什么被折叠?



