在Ubuntu 11.04中安裝ns-2.33,以前在Ubuntu-10.10安裝ns-2.33沒有遇到過這種錯誤,後來升級了一下Ubuntu的版本,就會出現以下錯誤。
可參考以下網址上說的解決方法:
http://www.linuxidc.com/Linux/2011-06/36779p3.htm
1.錯誤一:安裝NS2.33過程中出現如下的錯誤:
tools/ranvar.cc: In member function ‘virtual double GammaRandomVariable::value()’:
tools/ranvar.cc:219:70: error: cannot call constructor ‘GammaRandomVariable::GammaRandomVariable’ directly
tools/ranvar.cc:219:70: error: for a function-style cast, remove the redundant ‘::GammaRandomVariable’
make: *** [tools/ranvar.o]錯誤1
Ns make failed!
See http://www.isi.edu/nsnam/ns/ns-problems.html for problems
這是由於gcc版本提高後對類內部函數調用的簡化造成的不兼容,解決方法如下:
在ns-allinone-2.33/ ns-2.33/tools文件夾下,找到報錯提示中的ranvar.cc文件,打開找到對應的219行刪除::GaammaRandomVariable,保存,
即:將219行的
return GammaRandomVariable::GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);
改為:
return GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);
-----------------------------------------------------------------------------------------------------------------------------------------------
2.錯誤二:重新在ns目錄下鍵入$ ./install安裝,再次出現同類問題時,
如:
mobile/nakagami.cc: In member function ‘virtual double Nakagami::Pr(PacketStamp*, PacketStamp*, WirelessPhy*)’:
mobile/nakagami.cc:183:73: error: cannot call constructor ‘ErlangRandomVariable::ErlangRandomVariable’ directly
mobile/nakagami.cc:183:73: error: for a function-style cast, remove the redundant ‘::ErlangRandomVariable’
mobile/nakagami.cc:185:67: error: cannot call constructor ‘GammaRandomVariable::GammaRandomVariable’ directly
mobile/nakagami.cc:185:67: error: for a function-style cast, remove the redundant ‘::GammaRandomVariable’
make: *** [mobile/nakagami.o]錯誤1
Ns make failed!
See http://www.isi.edu/nsnam/ns/ns-problems.html for problems
解決方法:
在ns-allinone-2.33/ ns-2.33/ mobile文件夾下,找到報錯提示中的nakagami.cc文件,打開找到對應的183行刪除::ErlangRandomVariable,保存,
即:將183行的
resultPower = ErlangRandomVariable::ErlangRandomVariable(Pr/m, int_m).value();
改為:
resultPower = ErlangRandomVariable(Pr/m, int_m).value();
在ns-allinone-2.33/ ns-2.33/ mobile文件夾下,找到報錯提示中的nakagami.cc文件,打開找到對應的185行刪除::GammaRandomVariable,保存,
即:將185行的
resultPower = GammaRandomVariable::GammaRandomVariable(m, Pr/m).value();
改為:
resultPower = GammaRandomVariable(m, Pr/m).value();
重新在ns目錄下鍵入$ ./install安裝,再次出現同類問題時,仿照此次解決方法,找到對應的文件和行數,修改即可。直到安裝成功。