ns3.39编译时报错与解决_包括netanim-3.109(NetAnim)

ns3.39编译时报错与解决_包括netanim-3.109(NetAnim)_第1张图片ns(来源于“network simulator”)是一系列离散事件网络模拟器,包括ns-1、ns-2和ns-3。他们主要应用于研究和教学。ns-3是自由软件,以GNU GPLv2协议分发。​——百度百科

熟悉ns的朋友都知道,使用build.py编译时会先编译NetAnim,再编译ns3本体,而最新版的ns3,有时由于库的版本太新,或者与本机版本不同,编译会报错,本文介绍了作者编译netanim-3.109时的报错以及解决:

错误1 animatorscene.cpp:199:56: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’

QT库版本问题,ns3开发者手里的qt库里面有horizontalAdvance,而我的没有

我的qt版本如下:

sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
qtchooser is already the newest version (64-ga1b6736-5).
qt5-qmake is already the newest version (5.9.5+dfsg-0ubuntu2.6).
qtbase5-dev is already the newest version (5.9.5+dfsg-0ubuntu2.6).
qtbase5-dev-tools is already the newest version (5.9.5+dfsg-0ubuntu2.6)

替换水平长度函数为宽度函数即可(width函数我的QT有)

ns3.39编译时报错与解决_包括netanim-3.109(NetAnim)_第2张图片

错误2 qtpropertybrowser/src/qtpropertymanager.cpp:1285:45: error: ‘wildcardToRegularExpression’ is not a member of ‘QRegularExpression’

与上面的问题类似,不支持通配符

ns3.39编译时报错与解决_包括netanim-3.109(NetAnim)_第3张图片

    //Data() : regExp(QRegularExpression::wildcardToRegularExpression(QString(QLatin1Char('*')))),
        //    echoMode(QLineEdit::Normal), readOnly(false)
        //{
        //}
        
         Data() : regExp(QString(QLatin1Char('*'))),
            echoMode(QLineEdit::Normal), readOnly(false)
            {
                
            }

错误3 qtpropertybrowser/src/qtpropertymanager.cpp:1454:51: error: ‘anchoredPattern’ is not a member of ‘QRegularExpression’

判断数据有效但与与其不同就返回,这里参照以前的版本该了写法

ns3.39编译时报错与解决_包括netanim-3.109(NetAnim)_第4张图片

   //if (data.regExp.isValid())
    //{
    //    QRegularExpression re(QRegularExpression::anchoredPattern(data.regExp.pattern()));
    //    QRegularExpressionMatch match = re.match(val);
    //    if (!match.hasMatch())
    //        return;
    //}


      if (data.regExp.isValid() && !data.regExp.match(val).hasMatch())
        return;

你可能感兴趣的:(ns-3,Ubuntu,Linux,ns3,ns3.39)