難得想在 ubuntu上寫c++程式,竟然compile error
error message如下:
In function `__static_initialization_and_destruction_0(int, int)':
undefined reference to `std::ios_base::Init::Init()'
查了一下,詳細原因不清楚,
但似乎 Ubuntu 7.04之後的版本都會有這個問題,
解決辦法如下:
原本的指令:
g++ -o Result Source.cpp
改成:
g++ -lstdc++ -o Result Source.cpp
後面要加上 -lstdc++ 就可以了
沒裝過g++ compiler的,請打
sudo apt-get install g++
安裝g++ compiler。
2011-05-28 update:
噢,忘了說,
要 compile C 是用gcc
要 compile CPP要用 g++
另外,如果有跟我一樣在ubuntu上安裝過ns2,
且改過裡面的 c compiler變成g++-4.3版的,
則原本打gcc/g++,要改成 gcc-4.3/g++-4.3
這樣應該就會對了。
--
參考網頁:
http://ubuntuforums.org/archive/index.php/t-85211.html
2011年3月11日 星期五
2010年3月16日 星期二
如何在 ubuntu 9.10,安裝 ns-2.34
參考網頁:
http://ns-2.blogspot.com/2009/11/how-to-install-ns-234-on-ubuntu-910.html
第一步:從 Sourceforge下載ns-allinone-2.34.tar.gz
第二步:放在local端,ex: /home/NS2,解壓縮
$ cd /home/NS2
$ tar -zxvf ns-allinone-2.34.tar.gz
第三步:安裝一些其他必要的檔案
$ sudo apt-get install build-essential autoconf automake libxmu-dev
第四步:安裝ns2
$ cd ns-allinone-2.34
$ ./install
第五步:如果出錯了,是由於otcl-1.13 和 gcc-4.4.1/g++-4.4.1 (ubuntu 9.10內建的版本)不太合,無法compile,所以需要改安裝 g++-4.3版
$ sudo apt-get install g++-4.3
$ CC=gcc-4.3 CXX=g++-4.3 ./install
接著,還要再修改otcl資料夾內的Makefile.in
$ cd otcl-1.13
$ sudo gedit Makefile.in
把第7行的 CC= 改掉
From :
CC= @CC@
To:
CC= gcc-4.3
存檔後離開。
$ cd .. (應該會回到 ns-allinone-2.34資料夾底下)
$ ./install
第六步:修改環境變數、path
$ gedit ~/.bashrc
將以下幾行加在檔案的最後面,/home/NS2/ 則必須根據你自己的檔案名做更改。
ns2安裝完成後,最後面會提醒你要修改.bashrc,如果不知道/home/NS2/ 要替換成什麼,請參考ns2給的path。
# LD_LIBRARY_PATH
OTCL_LIB=/home/NS2/ns-allinone-2.34/otcl-1.13
NS2_LIB=/home/NS2/ns-allinone-2.34/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/home/NS2/ns-allinone-2.34/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/simulator/ns-allinone-2.34/bin:/home/simulator/ns-allinone-2.34/tcl8.4.18/unix:/home/simulator/ns-allinone-2.34/tk8.4.18/unix
NS=/home/simulator/ns-allinone-2.34/ns-2.34/
NAM=/home/simulator/ns-allinone-2.34/nam-1.14/
export PATH=$PATH:$XGRAPH:$NS:$NAM
第七步:驗證是否安裝成功
$ cd ns-2.34
$ ./validate
完成後會出現:
validate overall report: all tests passed
恭喜 :)
--
如果仍然不行,請參考這個網頁所給的第二種方法,然後再./install一次
http://ns-2.blogspot.com/2009/11/how-to-install-ns-234-on-ubuntu-910.html
第一步:從 Sourceforge下載ns-allinone-2.34.tar.gz
第二步:放在local端,ex: /home/NS2,解壓縮
$ cd /home/NS2
$ tar -zxvf ns-allinone-2.34.tar.gz
第三步:安裝一些其他必要的檔案
$ sudo apt-get install build-essential autoconf automake libxmu-dev
第四步:安裝ns2
$ cd ns-allinone-2.34
$ ./install
第五步:如果出錯了,是由於otcl-1.13 和 gcc-4.4.1/g++-4.4.1 (ubuntu 9.10內建的版本)不太合,無法compile,所以需要改安裝 g++-4.3版
$ sudo apt-get install g++-4.3
$ CC=gcc-4.3 CXX=g++-4.3 ./install
接著,還要再修改otcl資料夾內的Makefile.in
$ cd otcl-1.13
$ sudo gedit Makefile.in
把第7行的 CC= 改掉
From :
CC= @CC@
To:
CC= gcc-4.3
存檔後離開。
$ cd .. (應該會回到 ns-allinone-2.34資料夾底下)
$ ./install
第六步:修改環境變數、path
$ gedit ~/.bashrc
將以下幾行加在檔案的最後面,/home/NS2/ 則必須根據你自己的檔案名做更改。
ns2安裝完成後,最後面會提醒你要修改.bashrc,如果不知道/home/NS2/ 要替換成什麼,請參考ns2給的path。
# LD_LIBRARY_PATH
OTCL_LIB=/home/NS2/ns-allinone-2.34/otcl-1.13
NS2_LIB=/home/NS2/ns-allinone-2.34/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/home/NS2/ns-allinone-2.34/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/simulator/ns-allinone-2.34/bin:/home/simulator/ns-allinone-2.34/tcl8.4.18/unix:/home/simulator/ns-allinone-2.34/tk8.4.18/unix
NS=/home/simulator/ns-allinone-2.34/ns-2.34/
NAM=/home/simulator/ns-allinone-2.34/nam-1.14/
export PATH=$PATH:$XGRAPH:$NS:$NAM
第七步:驗證是否安裝成功
$ cd ns-2.34
$ ./validate
完成後會出現:
validate overall report: all tests passed
恭喜 :)
--
如果仍然不行,請參考這個網頁所給的第二種方法,然後再./install一次
2007年9月17日 星期一
訂閱:
文章 (Atom)