linux16.04安装NS-3-DCE的一些记录
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) 如果是
sudo apt-get install libc6
安装的是amd64的libc6 需要的是i386的libc6,所以需要
sudo apt-get install libc6:i386
其中,pygraphviz是PyViz可视化模块需要用到的,如果不需要用到PyViz,不装也没事。
3)
sudo apt install pkg-config
4) 报错的这部分主要作用是检查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脚本了。
