ns-2.29_mpolsr.rarファイルは壊れており、の作成者はを変更mpolsrしただけで、は変更してMakefileいませんMakefile.in。したがって、を実行する./configureと、の変更が消去されますMakefile。
コンパイルするために必要な手順は次のとおりです。
1.:を編集しMakefile.inます
olsrディレクトリとmpolsrをINCLUDES変数に追加します。次のようになります。
INCLUDES = \
        -I. \
        @V_INCLUDES@ \
        -I./tcp -I./sctp -I./common -I./link -I./queue \
        -I./adc -I./apps -I./mac -I./mobile -I./trace \
        -I./routing -I./tools -I./classifier -I./mcast \
        -I./diffusion3/lib/main -I./diffusion3/lib \
        -I./diffusion3/lib/nr -I./diffusion3/ns \
        -I./diffusion3/filter_core -I./asim/ -I./qs \
        -I./diffserv -I./satellite \
        -I./wpan -I./olsr -I./mpolsr
mpolsrのオブジェクトファイルをOBJ_CC変数に追加します。次のような行を追加する必要があります(真ん中の行が新しい行です)。
        olsr/OLSR.o olsr/OLSR_state.o olsr/OLSR_rtable.o olsr/OLSR_printer.o \
        mpolsr/MPOLSR.o mpolsr/MPOLSR_state.o mpolsr/MPOLSR_m_rtable.o mpolsr/MPOLSR_printer.o mpolsr/MPOLSR_rtable.o\
        common/ns-process.o \
新しいバージョンのを使用している場合は、ディレクティブgccも追加する必要があり-fpermissiveます。そうしないと、コンパイルに失敗します。これを行うには、.cc.o:ディレクティブを次のように変更します。
.cc.o:
        @rm -f $@
        $(CPP) -fpermissive -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc
2.configureスクリプトを実行可能にします
ns-2.29_mpolsrディレクトリで、を実行します
chmod +x configure
3.構成スクリプトを実行します
nsのallinoneバージョンに応じて、次のように実行します。
./configure --with-otcl=$PWD/../otcl-1.13/ --with-tclcl=$PWD/../tclcl-1.19/
上記のバージョン番号はns-allinone-2.34
4.作る
同じディレクトリで実行
make -j100
上記をで確認しましたgcc-4.6.3が、で動作するはずgcc-4.7です。