下面的步驟參考了以下幾個網址:
http://www.nsnam.org/wiki/index.php/HOWTO_configure_eclipse_with_ns-3
http://matinrad.com/index.php/2010/02/ns-3-and-eclipse/
http://www.anand-iyer.com/blog/?p=29
第一步:
下載NS3和Eclipse CDT,這步就不贅述了。
下面是主要的兩步,想要詳細其他功能參考:詳細eclipse配置c/c++過程和方法
sudo apt-get install eclipse
sudo apt-getinstall eclipse eclipse-cdt
第二步:
在eclipse裏新建一個C++ Project,類型爲EmptyProject,名字隨意(我這裏採用了ns3)。然後把NS3解壓後其中waf工具所在的目錄(隨版本有所不同,寫本文時的目錄名是ns-3.12.1)下所有文件移到eclipse的workspace下的ns3中。
第三步:
在ns3這個項目的屬性裏C/C++ Build中,在右面的Builder Settings標籤項中去掉use defaultbuild command複選框中的鉤,buildcommand中輸入${workspace_loc:/ns3/waf},去掉generate makefilesautomatically複選框中的鉤,在builddirectory中輸入${workspace_loc:/ns3/build}。在Behavior標籤項中,WorkbenchBuild Behavior中的複選框都選上,前兩個的值都爲build,最後一個是clean,最後點OK保存。這時就可以點擊BuildProject進行build和clean了。
第四步:
在“Run->Debug Configurations”裏,在C/C++Application裏新建一個配置,名字隨意(如ns3 Run)。在右面的Main標籤項中,C/C++Application下寫對應的程序,如build/debug/scratch/first(注意,編譯好的文件都放在這個debug文件下,scratch文件夾下的文件也會自動編譯)。Project下面就寫項目名(我的是ns3)就可以了。然後在Enviroment標籤項裏新建一個環境變量,Name是LD_LIBRARY_PATH,Value是${workspace_loc:ns3}/build/debug。接着應用即可。(注意,這樣Run或者Debug出來的結果和waf--run出來的是不一樣的,因爲這裏是直接從build好的文件開始運行的。)
第五步:
如果要模擬waf的功能,可以像下面這麼做:在“Run->External Tools->External ToolsConfigurations”裏,promgram中新建一個名字隨意(如ns3-waf)的配置。在右面的Main標籤項中,Location處填寫${workspace_loc:/ns3/waf},WorkingDirectory處填寫${workspace_loc:/ns3},Arguments處填寫--run"${string_prompt}"即可。如此運行時會要求輸入${string_prompt}所代表的部分。(注意,這樣Run出來的結果和waf--run是一樣的,都有幾行的'build'
finished successfully (0.922s)之類的信息。)
通過如上的五步,就可以在Eclipse裏開發NS3了。如果發現打開的源文件有一大堆錯誤,但卻不影響編譯運行,那是代碼分析器的問題,需要重建一下項目的Index。重建後再打開這些有錯的文件,就不再顯示錯誤了。(這個能不能說也是Eclipse的一個小問題呢...)
注意:
1.在第一次編譯時會報錯“The project was notconfigured: run "waf configure" first!”。,就去目錄地下執行./waf
configure,然後再編譯
2.在scratch目錄下的程序可能會報錯,這個並不是正真的錯誤,重啓,或是將報錯的語句註釋,然後再將註釋去掉,就是編輯一下,就會消除報錯,比較奇怪,感覺應該是更新的問題。
3.Eclipse不認識NS3的頭文件,在IDE中會顯示一大堆錯誤信息,比如頭文件找不到,這個貌似是不用管,直接運行,比如first.cc,雖然報錯,但是還是可以正常運行,這個問題折騰了我好久--!
解決方案:windows->perference->c/c++->indexer中進行設置是否包括頭文件。
貼一下英文的步驟,可以輔助着來看
http://www.nsnam.org/wiki/HOWTO_configure_Eclipse_with_ns-3