2011-04-07 34 views
3

我試圖修改ns2中的一些C++文件,然後使用make命令重新編譯。儘管在make之後創建了新的.o文件,但輸出與以前的C++文件類似(在修改之前)。有人可能會建議可能是背後的原因。使用make命令在ubuntu中重新編譯

+0

你重新編譯和鏈接使用.o文件的應用程序? – Duck 2011-04-07 19:40:22

+0

是的,實際上我試圖模擬一個路由協議,參數即協議的名稱被輸入到運行的tcl文件中我修改了spin.cc文件生成spin.o文件 – user697451 2011-04-07 19:50:30

回答

3

確保您運行的是您新建立的ns2可執行文件 - 如果您只輸入ns2,您將在系統上獲得已安裝的ns2二進制文件,但您尚未更改(除非您執行了make install,它可能會將它安裝在不同的地方,將舊的地方留在原地)。

一般你需要運行./ns2如果你想確保你在當前目錄中的可執行(這是可能您剛剛構建的一個,但檢查的Makefile和日期上的可執行是更有把握。)

+0

謝謝。 ./ns2工作 – user697451 2011-04-08 19:15:54

0

這通常意味着你沒有編譯你的想法。嘗試重命名你的源文件,看看是否仍然「編譯」它(它不應該)。或者,確保您保存了編輯器中的更改。

+0

感謝ethan的建議。我將源文件spin.cc重命名爲spin1.cc,它給出了錯誤make:*沒有規則來使目標'spin/spin.o','ns'所需。停止。 – user697451 2011-04-07 20:18:59

+0

接下來我更改了makefile(在此更改了spin.o爲spin1.o)並做出了決定。 spin1.o文件被創建,模擬運行,但輸出與前一個相同。 – user697451 2011-04-07 20:21:09

0

爲了讓所有的編譯時間依賴關係,你會

sudo apt-get build-dep ns2 

繼續獲得資源(46MB左右)和編譯

mkdir $HOME/ns2work 
cd $HOME/ns2work 
apt-get source ns2 --compile 

你會完成。 (它在我的工作站中在2'55「內建ns2,ns2-doc和ns2-examples)。在源目錄內,你可以編輯源文件並運行'make'或者debuild來重建你的修改。這種方法(和debuild)你最終會在的mkdir $ HOME的.deb文件/ ns2work所以你(如果你想在幾臺機器),實際上可以乾淨地安裝

好運