欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux16.04安装NS-3-DCE的一些记录

程序员文章站 2022-07-06 13:19:48
...

linux16.04安装NS-3-DCE的一些记录


1、安装一个软件比较靠谱的方法是查看官方发布的文档,照着官方文档安装,有问题再到网上搜索一波。

2、安装方法之一:利用bake进行安装
(1)先下载bake

hg clone http://code.nsnam.org/bake bake
export BAKE_HOME=`pwd`/bake
export PATH=$PATH:$BAKE_HOME
export PYTHONPATH=$PYTHONPATH:$BAKE_HOME

(2)创建DCE目录并配置要下载的部件及版本

mkdir dce
cd dce
bake.py configure -e dce-ns3-1.9 -e dce-linux-1.9

(3)检查依赖是否全部安装好了(有些依赖没有安装也没事,因为是非必须依赖,所以不安装也问题不大)

bake.py check
bake.py show 

这会显示出没有安装的依赖,把这些依赖装上就好了。但有些依赖不好装,有些是必须装的,有些是非必须的,如果一些依赖缺失了但也不影响编译运行,可以不装。
安装依赖的一些注意点:
1)若报clang-dev未安装,如果用以下命令安装就输了

sudo apt install clang-dev

因为clang-dev库所在的包libclang-dev,所以应该用

sudo apt install libclang-dev

2)缺失libc(即提示:libc - Missing)
linux16.04安装NS-3-DCE的一些记录
如果是

sudo apt-get install libc6

安装的是amd64的libc6
需要的是i386的libc6,所以需要

sudo apt-get install libc6:i386

其中,pygraphviz是PyViz可视化模块需要用到的,如果不需要用到PyViz,不装也没事。

3)linux16.04安装NS-3-DCE的一些记录

sudo apt install pkg-config

4)linux16.04安装NS-3-DCE的一些记录
报错的这部分主要作用是检查gccxml的版本是否过低,看了下ns-3-dce/bindings/python/wscript里的代码,发现其是用gccxml --version查看版本号的。但是在我的ubuntu中,不知道是gccxml版本问题还是啥,用gccxml --version查看不出来版本号,所以导致报错了。所以最简单的解决方法是忽略掉gccxml的版本检查,即把检查gccxml版本的代码注释掉。即ns-3-dce/bindings/python/wscript的下面部分注释掉:

    # ## Check gccxml version
    # try:
        # gccxml = conf.find_program('gccxml', var='GCCXML')
    # except WafError:
        # gccxml = None
    # if not gccxml:
        # Logs.warn("gccxml missing; automatic scanning of API definitions will not be possible")
        # ns3waf._report_optional_feature(conf, "pygccxml", "Python API Scanning Support", False,
                                     # "gccxml missing")
        # return
    # print "gccxml-->"
    # print gccxml
    # gccxml_version_line = os.popen(gccxml + " --version").readline().strip()
    # print "gccxml_version_line-->"
    # print gccxml_version_line
    # m = re.match( "^GCC-XML version (\d\.\d(\.\d)?)$", gccxml_version_line)
    # print "m-->"
    # print m
    # gccxml_version = m.group(1)
    # gccxml_version_ok = ([int(s) for s in gccxml_version.split('.')] >= [0, 9])
    # conf.msg('Checking for gccxml version', gccxml_version)
    # if not gccxml_version_ok:
        # Logs.warn("gccxml too old, need version >= 0.9; automatic scanning of API definitions will not be possible")
        # ns3waf._report_optional_feature(conf, "pygccxml", "Python API Scanning Support", False,
                                     # "gccxml too old")
        # return

(4)依赖安装好之后就可以下载了:

bake.py download -vvv      #加入-v或-vvv可显示更详细的信息

(5)进行编译:

bake.py build

有时候dce-linux-1.9编译成功了,但是运行dce仿真脚本的时候还是会报

lookupByName:socketFactory not found

这个错误,按理来说dce-linux-1.9都编译成功了,不应该会出这个错误。唉,多编译几次多试几下把,然后竟然神奇地发现错误没了。。。没了。。。有点懵逼,不知是我操作不对还是咋地,反正可以运行了,不管了。
至此,结束,可以运行dce脚本了。

相关标签: NS3