当前位置: 首页 > 工具软件 > Cywin > 使用案例 >

cywin安装ns-2.35,出现madrt/mdart_adp.o’failed,hash的引用有歧义,gcc降版本解决

笪涛
2023-12-01

cywin安装ns-2.35,出现madrt/mdart_adp.o’failed,hash的引用有歧义,gcc降版本解决

用到ns2是因为课题需要,从网上找了安装教程但是总出现下面问题,中间试过Ubuntu上安装ns2,虽然成功了,奈何自己太菜,程序资料太少,基本都是柯老师的资料,Ubuntu运行都会有各种不兼容问题,所以还是得安装cywin版的ns2,SO艰辛之路从此开始。。。。。。看网上说32位比较好安,为此我重装了系统,win7 32位,ns-allinone-2.35 ,cywin setup-x86-2.874。

首先cywin安装我是照着这个链接安的 http://blog.sina.com.cn/s/blog_7280dde80101ci9w.html ,安装成功(后续也是按照这个来的,只不过中间多了一个gcc降版本的步骤)之后大问题就来了。。。(我的镜像地址选的是cygwin.mirror.constant.com,也就是第一个,速度也挺快,163也可以,大家随意)
因为目前cywin里gcc的安装包最低都是7.3.0的版本,对于2011年的ns2来说太太太新了就会出现:’madrt/mdart_adp.o’failed,hash的引用有歧义的问题。这个问题我找了很久的解决方法,网上说的都很笼统,没有具体的一步步的解决方法,所以这篇文章就诞生了dangdangdang dang~
(新手一个,大神不要嘲笑)

  • 第一步:下载gmp, mprf, mpc这三个gcc的依赖库

由于这三个库之间也有依赖关系,所以你得按我列出来的顺序依次安装。
可于以下这些地方下载这三个库的源码包:
http://gmplib.org/ (我下的是gmp-6.1.2.tar.bz2)
http://mpfr.org/ (我下的是mpfr-4.0.2.tar.bz2)
http://www.multiprecision.org/ (我下的是mpc-1.1.0.tar.gz)
下载下来后将压缩包放进/usr/local/,手动解压到相同路径下(不太喜欢用tar 嘻嘻)

修改~/.bash_profile,加入以下三行
export LD_LIBRARY_PATH=/usr/local/lib
export LIBRARY_PATH=/usr/local/lib
export CPATH=/usr/local/include
重启cygwin,让这三行生效。

编译gmp:
./configure --disable-static --enable-shared
make
make check (好多教程都没讲这步,但是重要,不过make check之后他还会提醒你make check,忽略它)
make install

编译mpfr:
./configure --disable-static --enable-shared
make
make install

编译mpc:
./configure
make
make install

  • 第二步:安装gcc

编译gcc 5.4.0 (其他版本没试过,反正5.4.0可以)
mkdir gcc-5.4.0-objdir
cd gcc-5.4.0-objdir
…/gcc-5.4.0/configure --prefix=/opt/gcc-5.4.0 --enable-languages=c,c++ --disable-bootstrap
make
make install

最后编辑.bash_profile,将gcc 5.4.0的可执行文件所在目录加入PATH环境变量
PATH="/opt/gcc-5.4.0/bin:$PATH"

*如果中间出错 全部删掉重安即可

  • 第三步:切换gcc版本

首先执行gcc –v,g++ -v,可查看当前版本
之后将opt下的gcc-5.4.0文件里的文件全部复制进相应文件,例如gcc-5.4.0/bin里的全部复制替换进bin(跟usr同级),gcc-5.4.0/include复制进/usr/include, gcc-5.4.0/lib复制进lib(里面的gcc/ i686-pc-cygwin/同理),剩下的libexec、share同理复制进/usr/local/里相应文件夹。

至此cywin下gcc版本切换结束,多说几句,有人说这样替换不太好,但是如果按Ubuntu这样update-alternatives --config g++ 去替换,显示的是选择了5.4,但是gcc –v一下,版本还是7.4,不知道为啥换不成功,如果有大神看到,欢迎指点~
第四步:就是安装ns2了,还是这个教程 http://blog.sina.com.cn/s/blog_7280dde80101ci9w.html ,别忘了添加this->哦~

本文参考:https://blog.csdn.net/weixin_41565755/article/details/79433784
http://blog.sina.com.cn/s/blog_7280dde80101ci9w.html
https://blog.csdn.net/listlike/article/details/361406
https://blog.csdn.net/lvsehaiyang1993/article/details/81027399
http://blog.sina.com.cn/s/blog_9e98be530101ekne.html

 类似资料: