Ubuntu10.04下安装Ns2的一系列错误及解决方案

安装之前改一下nam1.11下的agent.h文件73行 Null改为0

第一个错误

xxx configuration:

Syntax error: Unterminated quoted string,

tcl,tk,otcl安装时都会遇到这个问题(原因是gcc对语法要求更加严格)。

解决办法:

分别进入以下3个文件夹:
*/ns-allinone-2.29/tcl8.4.11/unix/
*/ns-allinone-2.29/tcl8.4.11/tk8.4.11/unix/
*/ns-allinone-2.29/otcl-1.11/

gedit进入configure文件 搜索 "relid" 找到全部 ".relid'`" 改为 ".relid`"

 

 

第二个错误:

make: *** [tk3d.o] 错误 1

解决办法:
安装libx11-dev可以解决问题(可使用新立德)

 

第三个错误:

checking for X... configure: error: Can't find X includes

解决办法:

sudo apt-get install xorg-dev

 

第四个错误:

make:***[libotcl.so] 错误1

otcl- make failed! Exiting...

解决办法:

在gcc 4.0版本以前是用ld -share来生成共享库,但是到了4.0以及以上版本,这个命令改为了gcc -share。好了,问题找到了,就知道该怎么处理了。

进入otcl-1.13目录,找到configure.in.因为我用的是Ubuntu,所以只改Linux平台部分就得,
将77行,
SHLIB_LD="ld -shared"
改为
SHLIB_LD="gcc -shared"
同时修改configure 第5518行
SHLIB_LD="ld -shared"
改为
SHLIB_LD="gcc -shared"

 

第五个错误

make: g++:命令未找到
make: *** [tcl2c++] 错误 127
tclcl- make failed! Exiting ...

解决办法:

sudo apt-get install g++

 

第六个错误:

Tcl.cc:605: warning: deprecated conversion from string constant to ‘char*’
make: *** [Tcl.o] 错误 1
tclcl-1.18 make failed! Exiting ... 

由于gcc版本过高引起的编译问题 gcc-4.4  --> gcc-4.3

 1. sudo apt-get install gcc-4.3

 

但是这时系统默认的GCC还是4.4版的,可以通过gcc -v查看版本号 

设置GCC4.3和GCC4.4的可选项,在终端输入以下命令 

   1.  sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40

   2.  sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 30  

现在设置GCC的默认版本,输入下面命令: 

sudoupdate-alternatives --config gcc  

我得到的结果:  

There are 2choices for the alternative gcc (providing /usr/bin/gcc). 

  Selection   Path              Priority   Status 

------------------------------------------------------------

* 0            /usr/bin/gcc-4.4   40       auto mode 

  1           /usr/bin/gcc-4.3   30        manual mode 

  2           /usr/bin/gcc-4.4   40        manual mode 

然后输入“1”,再查看一下gcc的版本,已经变成4.3的了~~~~ 

同样对于g++也可以使用同样的方法从4.4高版本切换到4.3低版本。。。

 

由于我按照上述步骤装了gcc-4.3的不行,又装了gcc-4.1的仍然不行,于是就干脆进到tclcl-1.18文件夹下查找原因,最终发现的确因为是编译器版本过高引起的,但是是由于g++版本过高,而不是gcc,解决步骤如下:

1. sudo apt-get install g++-4.1

2. ls /usr/bin/g++*

得到结果:

/usr/bin/g++  /usr/bin/g++-4.1  /usr/bin/g++-4.4

3. update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 40

4. update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.1 30

5. sudo update-alternatives --config g++

得到结果:
  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/g++-4.4   40        auto mode
  1            /usr/bin/g++-4.1   30        manual mode
  2            /usr/bin/g++-4.4   40        manual mode
选择1即可

 

第7个错误:

./sctp/sctp.h:630: error: extra qualification ‘SctpAgent::’ on member ‘DumpSendBuffer’
make: *** [trace/trace.o] 错误 1
Ns make failed!
解决办法:

去掉

/sctp/sctp.h下的 ‘SctpAgent::’

 

第8个错误:

make: *** [src_rtg/sragent.o] 错误 1
Ns make failed!

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/mobile/god.h

inline void vector::operator=(const vector a)
inline void vector::operator+=(const vector a)
inline int vector::operator==(const vector a)
inline int vector::operator!=(const vector a)

改为:

inline void operator=(const vector a)
inline void operator+=(const vector a)
inline int operator==(const vector a)
inline int operator!=(const vector a)

 

需要修改的文件:

问题:

./sctp/sctp.h:632: 错误:有多余的限定‘SctpAgent::’在成员‘DumpSendBuffer’上
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
trace/trace.cc:185: 警告:不建议使用从字符串常量到‘char*’的转换
make: *** [trace/trace.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/sctp/sctp.h
void SctpAgent::DumpSendBuffer();
改为:
void DumpSendBuffer();
问题:解决:
./mobile/god.h: At global scope:
./mobile/god.h:88: 错误:有多余的限定‘vector::’在成员‘operator=’上
./mobile/god.h:93: 错误:有多余的限定‘vector::’在成员‘operator+=’上
./mobile/god.h:98: 错误:有多余的限定‘vector::’在成员‘operator==’上
./mobile/god.h:101: 错误:有多余的限定‘vector::’在成员‘operator!=’上
make: *** [src_rtg/sragent.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/mobile/god.h
inline void vector::operator=(const vector a)
inline void vector::operator+=(const vector a)
inline int vector::operator==(const vector a)
inline int vector::operator!=(const vector a)
改为:
inline void operator=(const vector a)
inline void operator+=(const vector a)
inline int operator==(const vector a)
inline int operator!=(const vector a)
问题:
queue/cbq.cc:112: 错误:ISO C++ 不允许声明无类型的‘CBQueue’
queue/cbq.cc:112: 错误:expected ‘;’ before ‘*’ token
queue/cbq.cc: In member function ‘virtual int CBQueue::insert_class(CBQClass*)’:
queue/cbq.cc:488: 错误:‘class CBQClass’没有名为‘cbq_’的成员
queue/cbq.cc: In constructor ‘CBQClass::CBQClass()’:
queue/cbq.cc:805: 错误:类‘CBQClass’没有名为‘cbq_’的字段
queue/cbq.cc: In member function ‘virtual void CBQClass::recv(Packet*, Handler*)’:
queue/cbq.cc:850: 错误:‘cbq_’在此作用域中尚未声明
queue/cbq.cc:856: 错误:‘cbq_’在此作用域中尚未声明
queue/cbq.cc: In member function ‘void CBQClass::update(Packet*, double)’:
queue/cbq.cc:873: 错误:‘cbq_’在此作用域中尚未声明
queue/cbq.cc: In member function ‘int CBQClass::desc_with_demand()’:
queue/cbq.cc:928: 错误:‘cbq_’在此作用域中尚未声明
queue/cbq.cc: In member function ‘void CBQClass::newallot(double)’:
queue/cbq.cc:975: 错误:‘cbq_’在此作用域中尚未声明
queue/cbq.cc: In member function ‘virtual int CBQClass::command(int, const char* const*)’:
queue/cbq.cc:1002: 错误:‘cbq_’在此作用域中尚未声明
make: *** [queue/cbq.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/queue/cbq.cc
#define POWEROFTWO 16
+class CBQueue;
class CBQClass : public Connector {
问题:
./tora/tora_neighbor.h:72: 错误:ISO C++ 不允许声明无类型的‘toraAgent’
./tora/tora_neighbor.h:72: 错误:expected ‘;’ before ‘*’ token
tora/tora.cc: In member function ‘void toraAgent::rt_resolve(Packet*)’:
tora/tora.cc:238: 警告:不建议使用从字符串常量到‘char*’的转换
tora/tora.cc: In member function ‘void toraAgent::recvUPD(Packet*)’:
tora/tora.cc:462: 警告:不建议使用从字符串常量到‘char*’的转换
tora/tora.cc: In member function ‘void toraAgent::recvCLR(Packet*)’:
tora/tora.cc:648: 警告:不建议使用从字符串常量到‘char*’的转换
make: *** [tora/tora.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/tora/tora_neighbor.h
#define __tora_neighbor_h__
+class toraAgent;
enum LinkStatus {
问题:
dsr/dsragent.cc:787: 错误:‘XmitFlowFailureCallback’在此作用域中尚未声明
dsr/dsragent.cc:1344: 错误:‘XmitFailureCallback’在此作用域中尚未声明
make: *** [dsr/dsragent.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/dsr/dsragent.cc
+void XmitFlowFailureCallback(Packet *pkt, void *data);
+void XmitFailureCallback(Packet *pkt, void *data);
/*===========================================================================
SendBuf management and helpers
问题:
diffusion/diffusion.cc:404: 错误:‘XmitFailedCallback’在此作用域中尚未声明
make: *** [diffusion/diffusion.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/diffusion/diffusion.cc
#include "routing_table.h"
+void XmitFailedCallback(Packet *pkt, void *data);
char *MsgStr[]= {"", "INTEREST", "DATA", "DATA_READY", "DATA_REQUEST",
问题:
diffusion/omni_mcast.cc:367: 错误:‘OmniMcastXmitFailedCallback’在此作用域中尚未声明
make: *** [diffusion/omni_mcast.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/diffusion/omni_mcast.cc

#include "god.h"
+void OmniMcastXmitFailedCallback(Packet *pkt, void *data);
static class OmniMcastClass : public TclClass {
问题:
tcp/tcp-sack-rh.cc:68: 错误:有多余的限定‘SackRHTcpAgent::’在成员‘newack’上
make: *** [tcp/tcp-sack-rh.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/tcp/tcp-sack-rh.cc
virtual void computefack();
//virtual void SackRHTcpAgent::newack(Packet* pkt);
+virtual void newack(Packet *pkt);
问题:
pgm/pgm-agent.cc:278: 错误:有多余的限定‘PgmAgent::’在成员‘trace_event’上
pgm/pgm-agent.cc: In member function ‘void PgmAgent::handle_rdata(Packet*)’:
pgm/pgm-agent.cc:578: 警告:不建议使用从字符串常量到‘char*’的转换
pgm/pgm-agent.cc: In member function ‘void PgmAgent::handle_nak(Packet*)’:
pgm/pgm-agent.cc:727: 警告:不建议使用从字符串常量到‘char*’的转换
pgm/pgm-agent.cc: In member function ‘void PgmAgent::handle_ncf(Packet*)’:
pgm/pgm-agent.cc:824: 警告:不建议使用从字符串常量到‘char*’的转换
make: *** [pgm/pgm-agent.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/pgm/pgm-agent.cc
void print_stats();
-//void PgmAgent::trace_event(char *evType, double evTime);
+void trace_event(char *evType, double evTime);
问题:
pgm/pgm-sender.cc:160: 错误:有多余的限定‘PgmSender::’在成员‘trace_event’上
pgm/pgm-sender.cc: In member function ‘virtual void PgmSender::handle_nak(Packet*)’:
pgm/pgm-sender.cc:472: 警告:不建议使用从字符串常量到‘char*’的转换
pgm/pgm-sender.cc: In member function ‘virtual void PgmSender::send_rdata(RdataItem*)’:
pgm/pgm-sender.cc:619: 警告:不建议使用从字符串常量到‘char*’的转换
make: *** [pgm/pgm-sender.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/pgm/pgm-sender.cc
-//void PgmSender::trace_event(char *evType, nsaddr_t daddr, double evTime);
+void trace_event(char *evType, nsaddr_t daddr, double evTime);
问题:
pgm/pgm-receiver.cc:157: 错误:有多余的限定‘PgmReceiver::’在成员‘trace_event’上
pgm/pgm-receiver.cc: In member function ‘void PgmReceiver::generate_Nak(int)’:
pgm/pgm-receiver.cc:589: 警告:不建议使用从字符串常量到‘char*’的转换
make: *** [pgm/pgm-receiver.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/pgm/pgm-receiver.cc
-void PgmReceiver::trace_event(char *evType, double evTime);
+void trace_event(char *evType, double evTime);
问题:
./diffusion3/filter_core/filter_core.hh:111: 错误:expected `)' before ‘*’ token
make: *** [diffusion3/ns/diffagent.o] 错误 1
Ns make failed!
解决:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/diffusion3/filter_core/filter_core.hh

class NeighborEntry;
+class DiffRoutingAgent;
typedef list<NeighborEntry *> NeighborList;

成功

转载于:https://www.cnblogs.com/liuxiaoke/p/3488616.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu安装谷歌浏览器 typora+出现编码错误‘ascii‘ codec can‘t encode character ‘\u6b66‘+docker里安装tensorrt报错

一.首先下载谷歌浏览器 https://www.google.cn/chrome/ sudo dpkg -i google-chrome-stable_current_amd64.deb 就安装好了&#xff0c;search谷歌浏览器就可以啦。 二,安装typora # optional, but recommendedsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-ke…

中国安防为何世界最强?中科院AI+安防报告,解密8大趋势和8大限制【附下载】| 智东西内参...

来源&#xff1a;智东西传统的安防企业、新兴的 AI 初创企业&#xff0c;开始积极从技术各个维度拥抱人工智能&#xff0c;在模式识别基础理论、图像处理、计算机视觉以及语音信息处理展开了集中研究与持续创新&#xff0c;探索模式识别机理以及有效计算方法&#xff0c;为解决…

Keras入门

首先当然是安装Keras。需要注意的是Keras有三种后端backend。后端是意思是Keras需要依赖他们进行张量的运算。这三种后端是&#xff1a;tensorflow&#xff0c;Theano&#xff0c;CNTK&#xff08;微软&#xff09;。这也是keras的优势&#xff1a;可以在多种生态中发布。一般使…

利用Inception-V3训练的权重微调,实现猫狗分类(基于keras)

利用Inception-V3训练的权重微调实现猫狗的分类&#xff0c;其中权重的下载在我的博客下载资源处&#xff0c;https://download.csdn.net/download/fanzonghao/10566634 第一种权重不改变直接用mixed7层&#xff08;mixed7呆会把打印结果一放就知道了&#xff09;进行特征提取…

刘锋:互联网左右大脑结构与钱学森开放复杂巨系统

作者&#xff1a;刘锋 互联网进化论作者 计算机博士前言&#xff1a;1990年&#xff0c;钱学森提出了开放的复杂巨系统理论&#xff0c;并提出以人为主&#xff0c;人机结合&#xff0c;从定性到定量的综合集成研究方法&#xff0c;他也预见性的提出“因特网正好生动地体现了…

DL中常用的numpy

读txt文件 按行读取有三种方式&#xff0c;注意readlines和readline的区别。open是python自带打开方式&#xff0c;如果打不开&#xff0c;可以使用encoding"UTF-8"指定解码方案。 读取得到一行之后&#xff0c;行首行尾可能存在一些不需要的字符&#xff0c;就可以…

paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中总结

paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中xml读取通过jdk xml初始化c3c0在代码中。。。。。作者Attilax 艾龙&#xff0c; EMAIL:1466519819qq.com来源&#xff1a;attilax的专栏地址&#xff1a;http://blog.csdn.net/attilaxproxoolController.ini()…

手写字母数据集转换为.pickle文件

首先是数据集&#xff0c;我上传了相关的资源&#xff0c;https://download.csdn.net/download/fanzonghao/10566701 转换代码如下&#xff1a; import numpy as np import os import matplotlib.pyplot as plt import matplotlib.image as mpig import imageio import pickle…

一文看懂谷歌的AI芯片布局,边缘端TPU将大发神威

来源&#xff1a;新电子2018年7月Google在其云端服务年会Google Cloud Next上正式发表其边缘(Edge)技术&#xff0c;与另两家国际公有云服务大厂Amazon/AWS、Microsoft Azure相比&#xff0c;Google对于边缘技术已属较晚表态、较晚布局者&#xff0c;但其技术主张却与前两业者有…

JS学习笔记-1--基本知识和注意事项

1、JS开始的目的主要是验证表单的输入验证 2、是一种具有面向对象能力的、解释型语言。是基于事件驱动的相对较安全的客户端脚本语言 3、JS 特点&#xff1a;松散型&#xff1a;变量不具备一个明确的类型&#xff1b; 对象属性&#xff1a;把属性名可以映射成任意的属性值&a…

opencv图像处理中的一些滤波器+利用滤波器提取条形码(解析二维码)+公交卡倾斜矫正+物体尺寸丈量

一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像中的细节信息也主要集中在其高频部分,因此,如何去掉高频干扰同时又保持细节信息是关键。为了去除噪声,有必要对图像进行平滑,可以采用低通滤波的方法去除高频干扰。图像平滑包括空域法和频域法两大…

智联汽车:复盘国内巨头布局

来源&#xff1a;申万宏源摘要&#xff1a;从今年阿里9月云栖大会、华为10月全联接大会、百度11月世界大会、腾讯11月合作伙伴大会可以发现BATH均高调展示了各自在汽车科技领域的研发成果;而京东、滴滴两家公司近两年来关于汽车科技领域的动态亦在频频更新。▌车联网:车载OS竞争…

即插即用+任意blur的超分辨率重建——DPSR

计算机视觉中存在许多的不适定问题ill-posed problem。先来看什么是适定问题well-posed problem&#xff0c;适定问题必须同时满足三个条件&#xff1a; 1. a solution exists 解必须存在2. the solution is unique 解必须唯一3. the solutions behavior changes c…

Tomcat基础教程(一)

Tomcat, 是Servlet和JSP容器&#xff0c;其是实现了JSP规范的servlet容器。它在servlet生命周期内包容&#xff0c;装载&#xff0c;运行&#xff0c;和停止servlet容器。 Servlet容器的三种工作模式&#xff1a; 1. 独立的Servlet容器 Servlet容器与基于JAVA技术的Web服务器集…

opencv--图像金字塔

一&#xff0c;高斯金字塔--图片经过高斯下采样 """ 高斯金字塔 """ def gauss_pyramid():img cv2.imread(./data/img4.png)lower_reso cv2.pyrDown(img)lower_reso2 cv2.pyrDown(lower_reso)plt.subplot(131), plt.imshow(img)plt.title(In…

中国移动:5G蜂窝IoT关键技术分析

来源&#xff1a;5G本文讨论了蜂窝物联网的技术现状&#xff0c;针对增强机器类通信和窄带物联网技术标准&#xff0c;提出了2种现网快速部署方案&#xff0c;并进一步指出了C-IoT面向5G的演进路径。该路径充分考虑了5G网络中网络功能虚拟化、软件定义网络、移动边缘计算和大数…

dataframe常用操作总结

初始化 可以使用arraycolumns的格式&#xff0c; dpd.DataFrame(np.arange(10).reshape(2,5)) df1 pd.DataFrame([[Snow,M,22],[Tyrion,M,32],[Sansa,F,18],[Arya,F,14]], columns[name,gender,age]) 也可以使用字典大括号的格式&#xff1a; df pd.DataFrame({a: [1, 2…

DEDE无简略标题时显示完整标题

新闻的标题需要进行字数限制&#xff0c;这就需要加入一个title属性&#xff0c;让鼠标放上去的时候显示完整标题。另外目前的调用只能同时调用一种标题方式&#xff0c;不过可 以采用以下方法&#xff0c;进行判断&#xff0c;无简略标题显示完整标题。例如dede早期版本中的”…

清华大学发布:人脸识别最全知识图谱

来源&#xff1a;智东西摘要&#xff1a;本期我们推荐来自清华大学副教授唐杰领导的学者大数据挖掘项目Aminer的研究报告&#xff0c;讲解人脸识别技术及其应用领域&#xff0c;介绍人脸识别领域的国内玩人才并预测该技术的发展趋势。自20世纪下半叶&#xff0c;计算机视觉技术…

图像变换dpi(tif->jpg),直方图均衡化,腐蚀膨胀,分水岭,模板匹配,直线检测

一.图像变换dpi 1.示例1 import numpy as np from PIL import Image import cv2 def test_dp():path./gt_1.tif# imgImage.open(path)# print(img.size)# print(img.info)imgcv2.imread(path)imgImage.fromarray(img)print(img.size)print(img.info)img.save(test.jpg, dpi(3…