在NS3的幫助文檔model-library中,介紹了安裝netanim模塊的步驟,但在依照文檔安裝出現了問題。
我先介紹文檔給出的安裝步驟:
1.yum install qt4
2.yum install qt4-devel
3.hg clone http://code.nsnam.org/netanim(此步驟需要安裝mercurial),下載netanim的源代碼
4.在netanim目錄下,執行以下命令: make clean
qmake NetAnim.pro
make
(在安裝完qt4後,並沒有qmake的命令。在centos中,默認將qt4的命令qmake-qt4放在了/usr/bin目錄下 。
用戶想使用qmake命令,需要執行sudo ln -s qmake-qt4 qmake軟鏈接的命令)
安裝到這個位置就出現了問題(如果正常的話,會在當前目錄下生成NetAnim的快捷命令方式。換句話說,只要是生成NetAnim文件,就代表NS3的netanim模塊安裝成功並可運行),言回正傳,到底這個位置出現什麼問題呢?提示錯誤大體是,error: no matching function for call to (QDoubleValidator::QDoubleValidator )。
在修改這個問題中,我嘗試了很多辦法,但最終還是失敗,經過我不經意中看到了qt官網上的 QDoubleValidator 函數的源代碼,所以我才恍然大悟錯誤在什麼地方,
執行命令sudo gedit /usr/include/QtGui/qvalidator.h,
將其中第142行的函數改爲explicit QDoubleValidator(QObject * parent=0);
至此問題得以解決,可以運行NetAnim程序!
感悟:問題解決還是需要紮實的語言基礎,熟悉explicit QDoubleValidator(QObject * parent=0)和explicit QDoubleValidator(QObject * parent)的區別,將會影響着問題解決的快慢!C++還是需要好好鑽研的!