3 เบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ
3.1 เบเบฒเบเบฅเบงเบก
3.2 เปเบเบทเปเบญเบเปเบเปเบเบทเปเบญเบเบเบปเปเบ
3.2.1 เบเบฒเบเบเบฒเบงเปเบซเบผเบเบเบฒเบเบเปเบญเบ ns-3 เปเบเบฑเบเบเบฒเบเบฎเบงเบเบฎเบงเบกเปเบซเบผเปเบ
3.3 เบเบฒเบเบเบฒเบงเปเบซเบผเบ ns-3 เปเบเบเปเบเป Git
3.3.1 เบเบฒเบเปเบซเบผเบ ns-3 เปเบเบเปเบเป Bake
3.4 เบชเบฐเบเบฒเบ ns-3
3.4.1 เบเบฒเบเบเปเปเบชเปเบฒเบเบเปเบงเบ build.py
3.4.2 เบเบฒเบเบเปเปเบชเปเบฒเบเบเปเบงเบ Bake
3.4.3 เบชเปเบฒเบเบเปเบงเบ Waf
3.5 เบเบฒเบเบเบปเบเบชเบญเบ ns-3
3.6 เปเบฅเปเบเบชเบฐเบเบฃเบดเบ
3.6.1 เบเบฒเบเปเบเปเบเบฝเบเปเบเบงเบเปเบฒเบชเบฑเปเบ
3.6.2 เบเบฒเบเบเบตเบเบฑเบ
3.6.3 เปเบญเบเบฐเบชเบฒเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ
เบเบปเบเบเบต 3
เปเบฅเบตเปเบกเบเบปเปเบ
เบเบปเบเบเบตเปเปเบกเปเบเบกเบตเบเบธเบเบเบฐเบชเบปเบเปเบเบทเปเบญเบเบฐเบเบฝเบกเบเบนเปเบญเปเบฒเบเปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบญเบกเบเบดเบงเปเบเบตเบเบตเปเบญเบฒเบเบเบฐเบเปเปเปเบเบตเบเบเบดเบเบเบฑเปเบ ns-3. เบกเบฑเบเบเบงเบกเปเบญเบปเบฒเปเบเบฅเบฐเบเบฐเบเบญเบกเบเบตเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ, เปเบเบทเปเบญเบเปเบเปเบเบทเปเบญเบเบเบปเปเบ, เบงเบดเบเบตเบเบฒเบเปเบเปเบฎเบฑเบ ns-3, เบงเบดเบเบตเบเบฒเบเบชเปเบฒเบ ns-3, เปเบฅเบฐเบงเบดเบเบตเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเบชเปเบฒเบเปเบฅเบฐเบเปเบฒเปเบเบตเบเปเบเบเบเบฒเบเบเปเบฒเบเปเบเบญเบเบเปเบฒเบ.
3.1 เบเบฒเบเบฅเบงเบก
ns-3 simulator เบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบเบฑเบเบฅเบฐเบเบปเบเบเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบญเบเปเบงเบฎเปเบงเบกเบกเบท. เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบญเบ, เบฅเบฐเบซเบฑเบเบเบญเบเปเบเบฅเปเบเบฅเบกเบเบนเปเปเบเปเปเบเปเบเบทเบเปเบเบทเปเบญเบกเปเบเบเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบซเบผเบปเปเบฒเบเบตเป. เบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบก C++ เบซเบผเบท Python เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฝเบเปเบเบผเปเบเบผเบกเบเบตเปเบเปเบฒเบซเบเบปเบเปเบญเบ.
Ns-3 เบเบทเบเปเบเบเบขเบฒเบเปเบเบฑเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบฅเบฐเบเบปเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเปเบญเบเบกเบตเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบงเปเบเบทเปเบญเบเปเบฒเบญเบดเบเบชเปเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบชเปเบฒเบเปเบเบเบเบฒเบเบเบนเปเปเบเป. เปเบเบซเบผเบฑเบเบเบฒเบ, ns-3 เบชเบฒเบกเบฒเบเบเบทเบเปเบเบเบขเบฒเบเปเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเบเบฝเบกเบเปเบญเบกเบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบเบชเบฐเปเบเบฒเบฐ, เปเบฅเบฐเปเบเบญเบฐเบเบฒเบเบปเบเบเบงเบเปเบเบปเบฒเบญเบฒเบเบเบฐเบเบทเบเปเบเบเบขเบฒเบเบเปเบงเบเบงเบดเบเบตเบเบตเป. เปเบเปเปเบเบเบฑเบเบเบธเบเบฑเบเบเบนเปเปเบเปเบซเบผเบฒเบเบเบปเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเบงเบเปเบเบปเบฒเปเบเบเบเบฒเบเบเบฑเบเปเบเป ns-3 เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ, เบเบฑเปเบเบเบฑเปเบเบกเบฑเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบเบฐเบกเบตเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเปเบเบทเปเบญเบชเปเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ. เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบนเปโเปเบโเบเบตเปโเบเปเบญเบโเบเบฒเบโเปเบโเบเบฒเบโเปเบฎเบฑเบโเบงเบฝเบโเบเบญเบโเบเบฒเบโเบชเปเบฒเบโเบซเปเบญเบโเบชเบฐโเบซเบกเบธเบโเปเบฅเบฐโเบเบฒเบโเบซเบธเปเบกโเบซเปเปโเบชเปเบฒโเบฅเบฑเบโเบฅเบฐโเบเบปเบโเบเบฐโเบเบดโเบเบฑเบโเบเบฒเบโ, เบเบฐโเบฅเบธโเบเบฒโเบเบดเบโเบเปเปโเบซเบฒโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบทเปโเบเบฒเบโเปเบเบชเบฐเบเบต ns-เบเบฑเบเบเบฑเบเบเบฐเบเบฒ.
เบเปเปเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบดเปเบเบชเบฒเบกเบงเบดเบเบตเบเบตเปเบเบฐเบเบฒเบงเปเบซเบฅเบเปเบฅเบฐเบชเปเบฒเบ ns-3. เบเปเบฒเบญเบดเบเปเบกเปเบเปเบเบทเปเบญเบเบฒเบงเปเบซเบฅเบเปเบฅเบฐเบชเปเบฒเบเบเบฒเบเบเปเบญเบเบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบฒเบเปเบงเบฑเบเปเบเบเปเบเบปเปเบเบเป. เบญเบฑเบเบเบตเบชเบญเบเปเบกเปเบเบเบฒเบเบเบฑเบเปเบฅเบทเบญเบเปเบฅเบฐเบเบฒเบเบเบฐเบเบญเบเบชเปเบฒเปเบเบปเบฒเบเบญเบเบชเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบทเปเบเบเบฒเบ ns-3. เบเบตเบชเบฒเบกเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบกเบทเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบตเปเบกเปเบเบตเบกเปเบเบทเปเบญเปเบซเบฅเบเบชเปเบงเบเบเบฐเบซเบเบฒเบเปเบเบตเปเบกเปเบเบตเบกเบชเปเบฒเบฅเบฑเบ ns-3. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเบเปเบเปเบฅเบฐเบญเบฑเบเบเบฑเบเบเบฑเปเบเปเบเปเปเบเบทเปเบญเบเบกเบทเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบเปเบฅเบฑเบเบเปเบญเบ.
เบเบนเปเปเบเป Linux เบเบตเปเบกเบตเบเบฐเบชเบปเบเบเบฒเบเบญเบฒเบเบเบฐเบชเบปเบเปเบชเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบ ns-3 เบเปเปเปเบเปเบเบทเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบฑเบเปเบเบฑเบเปเบเบฑเบเบเบทเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบญเบทเปเบเปเบชเปเบงเบเปเบซเบเปเบเบตเปเปเบเปเบเบปเบงเบเบฑเบเบเบฒเบเบเบธเบ? เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบตเปเบเบฑเบเปเบเบฑเบเบเบนเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบเบขเบฒเบ Linux เบเปเบฒเบเป (เปเบเบฑเปเบ: Debian), เบเบนเปเปเบเปเบชเปเบงเบเปเบซเบเปเบเบฐเปเบเปเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบฅเบฐเบเปเบญเบเบชเปเบฒเบ ns-3 เบเปเบงเบเบเบปเบเปเบญเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบกเบตเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเบเบตเปเบกเบตเบขเบนเปเปเบกเปเบเบกเบตเบเบฐเปเบซเบเบ. เบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบธเบกเปเบชเปเบเบฒเบเบเบดเบเบเบฑเปเบเบเบฒเบเปเบซเบผเปเบ.
เบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบชเปเบงเบเปเบซเบเปเบชเบดเบเบเบด ns-3 เบฎเบฒเบ เบเปเปเบเปเบฒเปเบเบฑเบ, เปเบเบฐเบเปเบฒเปเบซเปเปเบเปเบเบฑเบเบเบตเบเบนเปเปเบเปเบเบตเปเบเปเปเบกเบตเบชเบดเบเบเบดเบเบดเปเบชเบ.
3.2 เปเบเบทเปเบญเบเปเบเปเบเบทเปเบญเบเบเบปเปเบ
เบเบธเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ ns-3 เบเบตเปเบกเบตเบขเบนเปเบกเบตเบเปเบฒเบเบงเบเบเบญเบเบเบฒเบเบเบถเปเบเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฒเบเบชเปเบงเบเบเบตเบชเบฒเบก, เปเบเปเบชเปเบฒเบฅเบฑเบเบชเปเบงเบเปเบซเบเป ns-3 เบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบฅเบฐเบเปเบฒเปเบเปเบเบฑเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบปเปเบงเปเบเบซเบผเบฒเบ (เบกเบฑเบเบเบฐเบเบดเบเบเบฑเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ) เปเบเบฑเบ: compiler C ++, Python, เบเบฑเบเบเบฒเบเบดเบเบฒเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ (เบเบปเบงเบขเปเบฒเบ, vim, emacs เบซเบผเบท เบญเบธเบเบฐเบฅเบฒเบเบฒ) เปเบฅเบฐ, เบเปเบฒเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบทเบเบเปเบฒเปเบเป, เบฅเบฐเบเบปเบเบเบฒเบเบเบงเบเบเบธเบกเปเบงเบตเบเบฑเบ Git. เบเบนเปเปเบเปเบเบฑเปเบเบเปเบฒเบญเบดเบเบชเปเบงเบเปเบซเบเปเบเบฐเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบงเบปเบเบเปเบฒเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเบงเบเปเบเบปเบฒเบฅเบฒเบเบเบฒเบเบเบฒเบเบฅเบฑเบเบชเบฐเบเบฐเบเบฑเปเบเบชเบนเบ ns-3 เบซเบฒเบเปเบ, เปเบเปเบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเปเบญเบเบเบฒเบเบเบฒเบเบเบดเบเบเบฑเปเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเป, เปเบเบเบเบฒเบเบชเบฐเบซเบเบญเบ wiki เบเบตเปเบเบฐเบเบญเบเบกเบตเบซเบเปเบฒเบเบตเปเบกเบตเบเปเบฒเปเบเบฐเบเปเบฒเปเบฅเบฐเบเปเบฒเปเบเบฐเบเปเบฒเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเบซเบผเบฒเบ. เบซเบเปเบฒเบซเบเบถเปเบเบเบฑเปเบเบเปเบฒเบงเปเบกเปเบเบซเบเปเบฒเบเบฒเบเบเบดเบเบเบฑเปเบ, เบกเบตเบเปเบฒเปเบเบฐเบเปเบฒเบเบฒเบเบเบดเบเบเบฑเปเบเบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบเบเปเบฒเบเป, เบกเบตเบขเบนเป:
เบเบฒเบเบชเปเบงเบเปเบเบทเปเบญเบเปเบเปเบเบทเปเบญเบเบเบปเปเบเบเบญเบ wiki เบเบตเปเบญเบฐเบเบดเบเบฒเบเบงเปเบฒเบเบธเบเปเบเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเปเบฅเบทเบญเบ ns-3 เบเบปเปเบงเปเบเปเบฅเบฐเบเบฑเบเบชเบฐเบซเบเบญเบเบเปเบฒเบชเบฑเปเบเบเบตเปเปเบเปเปเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบงเบเบกเบฑเบเปเบเบฅเบปเบเบเบฒเบเบเบปเปเบงเปเบเบเบญเบ Linux เบซเบผเบท macOS.
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเปเบงเบฅเบฒเบเบฐเปเบซเบเบเบเบฒเบเปเบญเบเบฒเบเบเบตเปเปเบเบทเปเบญเบเบปเปเบเบซเบฒเบซเบเปเบฒ wiki ns-3 เบซเบผเบทเปเบงเบฑเบเปเบเบเปเบเบปเปเบเบเป:
เบเบธเบเปเบเบทเปเบญเบเบกเบท / เบฎเบธเปเบ
- C++ compiler
clang++ เบซเบผเบท g++ (g++ เบฅเบธเปเบ 4.9 เบซเบผเบทเบชเบนเบเบเบงเปเบฒ) - Python
เบฅเบธเปเบ python2 >= 2.7.10, เบซเบผเบท เปเบงเบตเบเบฑเปเบ python3 >=3.4 - Git
เปเบงเบตเบเบฑเบเบซเบผเปเบฒเบชเบธเบ (เปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบ ns-3 เปเบ GitLab.com) - tar
เปเบงเบตเบเบฑเบเบซเบผเปเบฒเบชเบธเบเปเบเปเบเปเบเบฒเบก (เบชเปเบฒเบฅเบฑเบเบเบฒเบ unpacking nsโ3 release) - bunzip2
เปเบงเบตเบเบฑเบเบซเบผเปเบฒเบชเบธเบเปเบเปเบเปเบเบฒเบก (เบชเบณเบฅเบฑเบเบเบฒเบเบเบญเบเบญเบญเบเบฅเบธเปเบ nsโ3)
เปเบเบทเปเบญเบเบงเบเปเบเบดเปเบเปเบงเบตเบเบฑเบเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบ Python, เบเบดเบก python -V
. เปเบเบทเปเบญเบเบงเบเปเบเบดเปเบเปเบงเบตเบเบฑเบ g++, เบเบดเบก g++ -v
. เบเปเบฒเปเบเบทเปเบญเบเบกเบทเปเบเบเบฒเบเบซเบฒเบเปเบ เบซเบผเบทเปเบเบปเปเบฒเปเบเบตเบเปเบ, เบเบฐเบฅเบธเบเบฒเปเบเบดเปเบเบเบนเปเบกเบทเบเบฒเบเบเบดเบเบเบฑเปเบเบขเบนเปเปเบเปเปเบฒ wiki ns-3.
เบเบฒเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบชเบปเบกเบกเบธเบเบงเปเบฒเบเบนเปเบญเปเบฒเบเบเปเบฒเบฅเบฑเบเปเบเป Linux, MacOS, เบซเบผเบท Linux emulator, เปเบฅเบฐเบกเบตเบขเปเบฒเบเบซเบเปเบญเบเปเบเบทเปเบญเบเบกเบทเบเปเบฒเบเปเบเบดเบ.
3.2.1 เบเบฒเบเบเบฒเบงเปเบซเบผเบเบเบฒเบเบเปเบญเบ ns-3 เปเบเบฑเบเบเบฒเบเบฎเบงเบเบฎเบงเบกเปเบซเบผเปเบ
เบเบตเปเปเบกเปเบเบซเบผเบฑเบเบชเบนเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเปเปเบซเบกเปเบเบตเปเบเปเบญเบเบเบฒเบเบเบฒเบงเปเบซเบฅเบเปเบฅเบฐเบเบปเบเบฅเบญเบเบเบฑเบเบฎเบธเปเบเบซเบผเปเบฒเบชเบธเบเปเบฅเบฐเบเบธเบเบเบญเบ ns-3. ns-3 เบเปเบญเบเบญเบญเบเบกเบฒเปเบกเบทเปเบญเบเบทเบเบเบฑเบเบเบดเบกเปเบเบฑเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเปเบซเบผเปเบเบเบตเปเบเบทเบเบเบตเบเบญเบฑเบ, เบเบฒเบเบเบฑเปเบเปเบญเบตเปเบเบงเปเบฒ เปเบฒเบ เบเบฒเบ. เปเบฒเบ เบเบฒเบ เปเบกเปเบเบฎเบนเบเปเบเบเบเบฒเบเบเบฑเบเปเบเบฑเบเบเบญเบเปเบงเบเบดเปเบชเบเบเบตเปเบซเบผเบฒเบเปเบเบฅเปเบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเบเบฑเบ. เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเบฒเบเบเบฑเบเปเบเบฑเบเบเบฐเบเบทเบเบเบตเบเบญเบฑเบ. ns-3 เบเบฐเบเบงเบเบเบฒเบ boot เบเปเบฒเบ เปเบฒเบ เบเบฒเบ เปเบกเปเบเบเปเบฒเบเบเบฒเบ, เบเปเบฒเบเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบฅเบทเบญเบเปเบญเบปเบฒเบเบฒเบเบเปเบญเบ, เบเบฒเบงเบเปเปเบซเบฅเบเปเบฅเบฐ unpack เบกเบฑเบ.
เปเบซเปเบชเบปเบกเบกเบธเบเบงเปเบฒเบเปเบฒเบเปเบเบฑเบเบเบนเปเปเบเปเบเปเบญเบเบเบฒเบเบชเปเบฒเบ ns-3 เปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบเบเบดเปเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ เบเบทเปเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบชเปเบฒเปเบเบปเบฒเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเบฒเบเบเปเบญเบเบญเบญเบเบกเบฒเปเบเบเบเบฒเบเปเบชเปเบชเบดเปเบเบเปเปเปเบเบเบตเปเปเบเบปเปเบฒเปเบเปเบ console Linux (เบเบฒเบเบเบปเบเปเบเบเบเบปเบงเปเบฅเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เปเบเปเบเบญเบ)
$ cd
$ mkdir workspace
$ cd workspace
$ wget https://www.nsnam.org/release/ns-allinone-3.29.tar.bz2
$ tar xjf ns-allinone-3.29.tar.bz2
เปเบญเบปเบฒเปเบเปเบชเปเบเบฑเบเบเบปเบเบเบฐเปเบซเบเบเบเบตเปเปเบเปเบเปเบฒเบเปเบเบดเบ wget, เปเบเบดเปเบเปเบเบฑเบเปเบเบทเปเบญเบเบกเบทเบเบฑเบเบเบฑเบเบเปเบฒเบชเบฑเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฒเบงเปเบซเบผเบเบงเบฑเบเบเบธเบเบฒเบเบญเบดเบเปเบเบตเปเบเบฑเบ. เบเปเบฒเบเปเบฒเบเบเปเปเปเบเปเบเบดเบเบเบฑเปเบเบกเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบปเบงเบเปเบญเบเปเบงเบฑเบเบเบญเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป.
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบฑเปเบเบเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบเปเบฒเบเปเบฒเบเปเบเบซเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบต ns-allinone-3.29, เบขเบนเปเบเบตเปเบเบฑเปเบเบเปเบฒเบเบเบงเบเบเบฐเปเบซเบฑเบเปเบเบฅเปเปเบฅเบฐเปเบเปเบฅเบเบฐเบเปเบฅเบตเบซเบผเบฒเบเบญเบฑเบ.
$ cd ns-allinone-3.29
$ ls
bake constants.py ns-3.29 README
build.py netanim-3.108 pybindgen-0.17.0.post58+ngcf00cc0 util.py
เบเบญเบเบเบตเปเปเบเบปเปเบฒเบเปเบญเบกเปเบฅเปเบงเบเบตเปเบเบฐเบชเปเบฒเบเบเบฒเบเปเบเบเบขเบฒเบเบเบทเปเบเบเบฒเบ ns-3 เปเบฅเบฐเบชเบฒเบกเบฒเบเบเปเบฒเบเปเบเบเบตเปเบเบฒเบเบชเปเบงเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเปเบชเปเบฒเบ ns-3.
3.3 เบเบฒเบเบเบฒเบงเปเบซเบผเบ ns-3 เปเบเบเปเบเป Git
เบฅเบฐเบซเบฑเบ ns-3 เปเบกเปเบเบกเบตเบขเบนเปเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ Git เปเบ GitLab.com เบเบตเป
เบงเบดเบเบตเบเบตเปเบเปเบฒเบเบเบตเปเบชเบธเบเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเปเบฒเปเบเปเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ Git เปเบกเปเบเบเบฒเบเบชเปเบญเบกเปเบเบกเบซเบผเบทเปเบเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก ns-3-allinone. เบเบตเปเปเบกเปเบเบเบธเบเบเบญเบเบชเบฐเบเบดเบเบเบตเปเบเบฑเบเบเบฒเบเบเบฒเบเปเบซเบผเบเปเบฅเบฐเบเบฒเบเบเบฐเบเบญเบเบเบญเบเบฅเบฐเบเบปเบเบเปเบญเบ ns-3 เบเบตเปเปเบเปเบเบปเปเบงเปเบเบเบตเปเบชเบธเบ. เบเปเบฒเบเปเบฒเบเปเบซเบกเปเบเบฑเบ Git, เบเปเบฒเบงเปเบฒ "fork" เปเบฅเบฐ "clone" เบญเบฒเบเบเบฐเบเปเปเบเบธเปเบเปเบเบตเบเบเบฑเบเบเปเบฒเบ; เบเปเบฒเปเบเบฑเบเบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเบฐเบเปเบฒเปเบซเปเบเปเบฒเบเบเบฝเบเปเบเป clone (เปเบฎเบฑเบเบชเปเบฒเปเบเบปเบฒเบเบญเบเบเปเบฒเบเปเบญเบ) repository เบเบตเปเบเบฑเปเบเบขเบนเปเปเบ GitLab.com เปเบเบเบเบตเป:
$ cd
$ mkdir workspace
$ cd workspace
$ git clone https://gitlab.com/nsnam/ns-3-allinone.git
$ cd ns-3-allinone
เปเบเบเบฑเปเบเบเบญเบเบเบตเป, เบกเบธเบกเปเบเบดเปเบเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบญเบเบเปเบฒเบ ns-3-allinone เปเบเบเบเปเบฒเบเบเบฑเบเปเบฅเบฑเบเบเปเบญเบเบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบเปเบกเบเบฑเบเปเบเบฑเบเบเบฒเบเบเปเบญเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเบเปเบฒเบเปเบเบดเบ. เบกเบฑเบเบเบงเบเบเบฐเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเบเบตเป:
$ ls
build.py constants.py download.py README util.py
เบเบฐเบฅเบธเบเบฒเบชเบฑเบเปเบเบเบงเปเบฒเบกเบต script download.py, เปเบเบดเปเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเบฐเบชเบฐเบเบฑเบ ns-3 เปเบฅเบฐเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเบเบตเปเบกเบฒ. เปเบโเบเบตเปโเบเบตเปโเบเปเบฒเบโเบกเบตโเบเบฒเบโเปเบฅเบทเบญเบโ: เบเบฑเบโเบเบฒเบงโเบโเปโเปเบซเบฅเบโเบฎเบนเบโเบเบฒเบโเบเบฒเบโเบเบฑเบโเบเบฐโเบเบฒ ns-3 เบซเบฅเปเบฒโเบชเบธเบโ:
$ python download.py
เบซเบผเบทเบกเบฑเบเบเบฒเบเบเปเบญเบ ns-3 เปเบเบเปเบเปเบเบธเบ -n
เปเบเบทเปเบญเบเบตเปเบเบญเบเบเบปเบงเปเบฅเบเบเบฒเบเบเปเบญเบ:
$ python download.py -n ns-3.29
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบตเปเปเบเบซเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบต ns-3-allinone repositories เปเบเบตเปเบกเปเบเบตเบกเบเบฐเบเบทเบเบเบฒเบงเปเบซเบผเบ ns-3, bake, pybindgen ะธ เปเบเบเบฑเบเบเบดเบก.
ะัะธะผะตัะฐะฝะธะต
เปเบเปเบเบทเปเบญเบเบเบตเปเบกเบต Ubuntu16.04 เบเบตเปเบชเบฐเบญเบฒเบ, เบเปเบญเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฝเบเบเปเบฒเบชเบฑเปเบเบเบตเป: $ sudo python3 download.py -n ns-3.29
(เบเปเปเปเบเบเบตเปเปเบกเปเบเบเบฑเบเบเบถเบเบเบญเบเบเบนเปเปเบ).
3.3.1 เบเบฒเบเปเบซเบผเบ ns-3 เปเบเบเปเบเป Bake
เบชเบญเบเบงเบดเบเบตเบเปเบฒเบเปเบเบดเบ (เบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเปเบซเบผเปเบเบซเบผเบท repository ns-3-allinone เบเปเบฒเบ Git) เปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบ ns-3 เบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบเบเบตเปเบกเบต addons เบซเบผเบฒเบ (pybindgen เปเบเบทเปเบญเบชเปเบฒเบเบเบฒเบเบเบนเบเบกเบฑเบ Python เปเบฅเบฐ เปเบเบเบฑเบเบเบดเบก เบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเปเบเบทเปเบญเบโเปเบซเบงโเปเบเบทเบญโเบเปเบฒเบโ)โ. เบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบตเบชเบฒเบกเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบ ns-3-allinone เบเบทเบเปเบญเบตเปเบเบงเปเบฒ bake.
เบญเบปเบ เปเบเบฑเบโเปเบเบทเปเบญเบโเบกเบทโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเบฐโเบชเบฒเบโเบเบฒเบโเบเบฒเบโเบเปเปโเบชเปเบฒเบโเบเบญเบโเบเบญเบโเปเบงโเบเบฒเบ repositories เบซเบผเบฒเบโ, เบเบฒเบโเบเบฑเบโเบเบฐโเบเบฒโเบชเปเบฒโเบฅเบฑเบโเปเบเบโเบเบฒเบ nsโ-3โ. เบญเบปเบ เบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเบฎเบฑเบเบฅเบธเปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ ns-3, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเบฒเบงเปเบซเบผเบ เปเบฅเบฐเบชเปเบฒเบเบชเปเบงเบเบเบฐเบซเบเบฒเบเบเบญเบเปเบงเบตเบเบฑเบเบเบทเปเบเบเบฒเบเบเบญเบเบเบฒเบเปเบเบเบขเบฒเบ ns-3, เปเบเบฑเปเบ: เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก. เบเบฒเบเบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบเปเบเบเบเบปเบ, CradleNetwork Simulation Cradle, เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเบเบนเบเบกเบฑเบ Python เปเบซเบกเปเปเบฅเบฐ "เปเบญเบฑเบเบฏ" ns-3 เบเปเบฒเบเป.
ะัะธะผะตัะฐะฝะธะต
CradleNetwork Simulation Cradle เปเบกเปเบเบเบญเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเป stacks เปเบเบทเบญเบเปเบฒเบ TCP / IP เบเบตเปเปเบเปเบเบดเบเบเบฒเบเปเบ simulator เปเบเบทเบญเบเปเบฒเบ.
เบเปเบฒเบเปเบฒเบเบเบฒเบเบซเบงเบฑเบเบงเปเบฒเบเบฒเบเบเบดเบเบเบฑเปเบ ns-3 เบเบญเบเบเปเบฒเบเบเบฐเบกเบตเบเบธเบเบชเบปเบกเบเบฑเบเบเบฑเปเบเบชเบนเบเบซเบผเบทเปเบเบตเปเบกเปเบเบตเบก, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเปเบชเบฑเปเบเบเบฒเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบตเป.
เปเบเบเบฒเบเบเปเบญเบ ns-3 เบซเบผเปเบฒเบชเบธเบ เบญเบปเบ เปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบปเปเบฒเปเบเบเบฒเบเบเปเบญเบ tar. เบเบฒเบเบเปเบญเบเบเบปเบงเบเบฐเบเบญเบเบกเบตเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฒเบงเปเบซเบฅเบเปเบงเบตเบเบฑเบเบเบญเบเบเบญเบเปเบงเปเบเบเบฐเบเบธเบเบฑเบเปเบเปเบงเบฅเบฒเบญเบญเบ. เบเบฑเปเบเปเบกเปเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เบชเบฐเบเบฑเบ เบญเบปเบ, เปเบเบดเปเบเบเบทเบเปเบเบเบขเบฒเบเบเบฑเบเบเบฒเบเบเปเบญเบ ns-3.29, เบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเบเบถเบเปเบญเบปเบฒเบญเบปเบเบเบฐเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบญเบ ns-3 เบซเบผเบทเบเปเบญเบเบซเบเปเบฒเบเบฑเปเบ, เปเบเปเบเปเปเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบถเบเปเบญเบปเบฒเบญเบปเบเบเบฐเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบญเบญเบเบเปเปเบกเบฒ (เบเปเบฒเปเบเบฅเปเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบธเบ. bakeconf.xml เบเปเปโเปเบเปโเบเบฑเบโเบเบธเบ).
เบเบญเบเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบชเปเบฒเปเบเบปเบฒเบซเบฅเปเบฒเบชเบธเบ bakeเปเบเบเบเบฒเบเปเบชเปเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเปเปเบเบปเปเบฒเปเบเปเบ console Linux เบเบญเบเบเปเบฒเบ (เบชเบปเบกเบกเบธเบเบงเปเบฒเบเปเบฒเบเปเบเปเบเบดเบเบเบฑเปเบ Git):
$ cd
$ mkdir workspace
$ cd workspace
$ git clone https://gitlab.com/nsnam/bake.git
เปเบกเบทเปเบญเบเปเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบ git, เบเปเบฒเบเบเบงเบเปเบซเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ:
Cloning into 'bake'...
remote: Enumerating objects: 2086, done.
remote: Counting objects: 100% (2086/2086), done.
remote: Compressing objects: 100% (649/649), done.
remote: Total 2086 (delta 1404), reused 2078 (delta 1399)
Receiving objects: 100% (2086/2086), 2.68 MiB | 3.82 MiB/s, done.
Resolving deltas: 100% (1404/1404), done.
เบซเบผเบฑเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบชเปเบฒเปเบฅเบฑเบ clone เบเปเบฒเบเบเบงเบเบกเบตเบเบทเปเปเบเปเบฅเบเบฐเบเปเบฅเบต bake, เปเบเบทเปเบญเปเบเบเบญเบเบชเบดเปเบเบเบตเปเบเบงเบเบเบฐเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเปเบเบฑเปเบเบเบตเป:
$ cd bake
$ ls
bake bakeconf.xml bake.py doc examples generate-binary.py test TODO
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเปเบฒเบเปเบเปเปเบซเบฅเบเบชเบฐเบเบดเบ Python เบซเบผเบฒเบเบญเบฑเบ, เปเบกเบเบนเบ Python เบเบทเป bake เปเบฅเบฐเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ XML. เบเบฑเปเบเบเบญเบเบเปเปเปเบเปเบกเปเบเบเบฒเบเปเบเปเบชเบฐเบเบดเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบทเปเบญเบเบฒเบงเปเบซเบฅเบเปเบฅเบฐเบชเปเบฒเบเบเบฒเบเปเบเบเบขเบฒเบ ns-3 เบเบตเปเบเปเบฒเบเปเบฅเบทเบญเบ. เปเบเบปเปเบฒเปเบฒเบเบเบฒเบเบเบฑเบเปเบเปเบเบซเบผเบฒเบเบญเบฑเบเบชเบฒเบกเบฒเบเปเบเปเปเบเป:
-
ns-3.29: เปเบกเบเบนเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเบเบฒเบเบเปเบญเบ; เบกเบฑเบเบเบฐเบเบฒเบงเปเบซเบฅเบเบญเบปเบเบเบฐเบเบญเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบเบฒเบเบเปเบญเบเปเบ tarball;
-
ns-3-dev: เปเบกเบเบนเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ, เปเบเปเปเบเปเบฅเบฐเบซเบฑเบเบเบฒเบเบเบปเปเบเปเบกเปเบเบฑเบเบเบฐเบเบฒ;
-
ns-allinone-3.29: เปเบกเบเบนเบเบเบตเปเบเบฐเบเบญเบเบกเบตเบเบธเบเบชเบปเบกเบเบฑเบเปเบเบตเปเบกเปเบเบตเบกเบญเบทเปเบเปเปเบเบฑเปเบ: เปเบชเบฑเปเบเบเบฒเบเบเบฅเบดเบ เปเบฅเบฐเปเบเบทเบญเบเปเบฒเบเบเบณเบฅเบญเบ Cradle, Openflow เบชเปเบฒเบฅเบฑเบ ns-3.
-
ns-3-allinone: เบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบฅเบธเปเบเบฅเบธเปเบเบเบญเบเปเบกเบเบนเบ Allinone, เปเบเปเบชเปเบฒเบฅเบฑเบเบฅเบฐเบซเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒ.
ะัะธะผะตัะฐะฝะธะต
เบเบปเบ โ เบชเบฐโเบเบฒโเบเบฑเบโเบเบฐโเบเบฐโเบเบฒเบโเบเบญเบโเปเบง modular เบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบชเปเบฒเบ routersโ.
Openflow เปเบกเปเบเปเบเปเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฐเบเบงเบเบเบฒเบเบเบฐเบกเบงเบเบเบปเบเบเปเปเบกเบนเบเบเบตเปเบเบทเบเบชเบปเปเบเบเปเบฒเบเปเบเบทเบญเบเปเบฒเบเบเปเปเบกเบนเบเปเบเบ routers เปเบฅเบฐ switches, เบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเบเปเบเปเบฅเบขเบตเปเบเบทเบญเบเปเบฒเบเบเบตเปเบเปเบฒเบเบปเบเปเบเบเบเบญเบเปเบง.
เบเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเบเบฐเบเบธเบเบฑเบ (เบเบตเปเบเปเปเปเบกเปเบเบเบฒเบเบเปเบญเบ) ns-3 เบชเบฒเบกเบฒเบเบเบปเบเปเบเปเบเบตเป:
เบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบฐเบเบฒเบเบฒเบกเบฎเบฑเบเบชเบฒ repositories เปเบซเบผเบปเปเบฒเบเบตเปเบขเบนเปเปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบตเปเบชเบญเบเบเปเบญเบ, เปเบเปเบเบงเบเปเบเบปเบฒเบขเบนเปเปเบเบเบทเปเบเบเบตเปเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบฅเบฐเบกเบตเบฅเบฐเบซเบฑเบเบเบตเปเบเบฑเบเบเปเปเปเบเปเบเปเบญเบเบญเบญเบเบกเบฒ, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเปเบฒเบเบเปเปเปเบเปเบงเบฒเบเปเบเบเบเบตเปเบเบฐเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเปเบซเบกเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบฅเบทเบญเบเบเบฒเบเบเปเบญเบเบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบ.
เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเบญเบโเบซเบฒโเบชเบฐโเบเบฑเบโเบซเบฅเปเบฒโเบชเบธเบโเบเบญเบโเบฅเบฐโเบซเบฑเบโเปเบเบโเบเบฒเบโเบเบญเบโเบซเบฒโเบฅเบฒเบโเบเบทเปโเบเบญเบ repositoriesโ, เบซเบผเบทโเปเบเบโเบเบฒเบโเปเบโเบเบตเปโเบซเบเปเบฒโเปเบงเบฑเบโเปเบโเบโเป ns-3 Releasesโ:
เปเบเบเบฑเบเบเบธเบเบฑเบ, เปเบเบทเปเบญเปเบซเปเปเบเปเบฎเบฑเบเบญเบปเบเบเบฐเบเบญเบ ns-3 เบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบกเบท เบญเบปเบ. เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเปเบฒเปเบเบฐเบเปเบฒเบเปเบฒเบเบงเบเบซเบเปเบญเบเบเปเบฝเบงเบเบฑเบเบงเบฝเบเบเบฒเบ เบญเบปเบ.
Bake เปเบฎเบฑเบเบงเบฝเบเปเบเบเบเบฒเบเปเบซเบฅเบเปเบซเบผเปเบเปเบเบฑเบเปเบเบฑเบเปเบเบปเปเบฒเปเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต เปเบซเบผเปเบ เปเบฅเบฐเบเบฒเบเบเบดเบเบเบฑเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบเบปเปเบฒเปเบเปเบ build directory. เบญเบปเบ เบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบเบเบเบฒเบเบญเปเบฒเบเบญเบดเบ binary, เปเบเปเบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ เบญเบปเบ เบเปเปเปเบกเปเบเบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบกเบฑเบเบเบทเบเบเบฒเบงเปเบซเบผเบ, เบเบงเบเปเบเบตเปเบกเปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒ bake เปเบเบชเบนเปเปเบชเบฑเปเบเบเบฒเบเบเบญเบเบเปเบฒเบ (เบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก PATH), เบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเป (เบเบปเบงเบขเปเบฒเบเบชเปเบฒเบฅเบฑเบ Linux bash shell). เปเบเบเบตเปเปเบเปเบฅเบเบฐเบเปเบฅเบต "bake" เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเปเปเปเบเบเบตเป:
$ export BAKE_HOME=`pwd`
$ export PATH=$PATH:$BAKE_HOME:$BAKE_HOME/build/bin
$ export PYTHONPATH=$PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/lib
เบเบตเปเบเบฐเบเบฑเบเบงเบฒเบเปเบเบเบเบฒเบ bake.py เปเบเบชเบนเปเปเบชเบฑเปเบเบเบฒเบ shell เปเบฅเบฐเบเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบเบเบฒเบเบญเบทเปเบเปเบเบญเบเบซเบฒ executables เปเบฅเบฐเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเบกเบฑเบเบชเปเบฒเบ bake. เปเบเบเบฒเบเบเปเบฅเบฐเบเบตเบเบฒเบเบเปเบฒเปเบเป bake, เบเบฒเบเบเบฑเปเบเบเปเบฒ PATH เปเบฅเบฐ PYTHONPATH เบเบตเปเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเปเบเบดเบเปเบกเปเบเบเปเปเบเปเบฒเปเบเบฑเบ, เปเบเปเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเบชเบปเบกเบเบนเบเบเบญเบ ns-3-allinone (เบกเบตเบเบธเบเปเบเบตเปเบกเปเบเบตเบก) เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเปเบญเบเบเบฒเบเบกเบฑเบ.
เปเบเบเบตเปเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเปเบฒเบเปเบฅเบฐเปเบชเปเบชเบดเปเบเบเปเปเปเบเบเบตเปเปเบ console:
$ ./bake.py configure -e ns-3.29
เบเปเปเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฒเบก เบญเบปเบ เบเบงเบเปเบเบดเปเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเปเบเบทเปเบญเบเบกเบทเบเบฝเบเบเปเบเบตเปเบเบฐเปเบซเบฅเบเบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบเป. เปเบ:
$ ./bake.py check
เบเปเบฒเบเบเบงเบเปเบเบดเปเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
> Python - OK
> GNU C++ compiler - OK
> Mercurial - OK
> Git - OK
> Tar tool - OK
> Unzip tool - OK
> Make - OK
> cMake - OK
> patch tool - OK
> Path searched for tools: /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin ...
เปเบเบเบชเบฐเปเบเบฒเบฐ, เปเบเบทเปเบญเบเบกเบทเบญเบฑเบเปเบซเบฅเบเปเบเบฑเปเบ Mercurial, CVS, Git เปเบฅเบฐ Bazaar เปเบกเปเบเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเปเบเบเบฑเปเบเบเบญเบเบเบตเปเบเปเบญเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบฅเบฐเบซเบฑเบ. เปเบเบเบธเบเบเบตเป, เบเบดเบเบเบฑเปเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเบเบฒเบเบซเบฒเบเปเบเปเบเปเบเบเบเบปเบเบเบฐเบเบดเบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบเบเบญเบเบเปเบฒเบ (เบเปเบฒเบเปเบฒเบเบฎเบนเปเบงเบดเบเบต) เบซเบผเบทเบเบดเบเบเปเปเบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบเบเบญเบเบเปเบฒเบเปเบเบทเปเบญเบเปเบเบงเบฒเบกเบเปเบงเบเปเบซเบผเบทเบญ.
เบเปเปเปเบ, เบฅเบญเบเบเบฒเบงเปเบซเบฅเบเบเบญเบเปเบง:
$ ./bake.py download
เบเบปเบเปเบเปเบฎเบฑเบเบเบงเบเบเบฐเปเบเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ:
>> Searching for system dependency setuptools - OK
>> Searching for system dependency libgoocanvas2 - OK
>> Searching for system dependency gi-cairo - OK
>> Searching for system dependency pygobject - OK
>> Searching for system dependency pygraphviz - OK
>> Searching for system dependency python-dev - OK
>> Searching for system dependency qt - OK
>> Searching for system dependency g++ - OK
>> Downloading pybindgen-0.19.0.post4+ng823d8b2 (target directory:pybindgen) - OK
>> Downloading netanim-3.108 - OK
>> Downloading ns-3.29 - OK
เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบชเบฒเบกเปเบซเบผเปเบเปเบเปเบเบทเบเบเบฒเบงเปเบซเบผเบเปเบฅเปเบง. เบเบญเบเบเบตเปเปเบเบเบตเปเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบซเบผเปเบเปเบฅเบฐเบเบดเบก ls; เบเปเบฒเบเบเบงเบเปเบเบดเปเบ:
$ cd source
$ ls
netanim-3.108 ns-3.29 pybindgen
เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบเปเบญเบกเบเบตเปเบเบฐเบชเปเบฒเบเบเบฒเบเปเบเบเบขเบฒเบ ns-3.
3.4 เบชเบฐเบเบฒเบ ns-3
เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเบฒเบงเปเบซเบผเบ ns-3, เบกเบตเบซเบผเบฒเบเบงเบดเบเบตเบเบตเปเบเบฐเบชเปเบฒเบ ns-3. เบชเบดเปเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเบฑเปเบเบซเบเบฑเบเปเบกเปเบเบงเปเบฒ ns-3 เบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบเบเปเบเปเปเบเบทเปเบญเบเบกเบทเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ Wafเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป. เบเบนเปเปเบเปเบชเปเบงเบเปเบซเบเปเบเบฐเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ Waf, เปเบเปเบกเบตเบชเบฐเบเบฃเบดเบเบเบตเปเบกเบตเบเบฐเปเบซเบเบเปเปเบญเบเปเบถเปเบเปเบเบทเปเบญเบเปเบงเบเปเบซเปเบเปเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ เบซเบผเบทเบเบฑเบเบงเบฒเบเบเบฒเบเบชเปเบฒเบเบเบตเปเบเบฑเบเบเปเบญเบเบซเบผเบฒเบเบเบถเปเบ. เบเบฑเปเบเบเบฑเปเบเบเบฐเบฅเบธเบเบฒ, เบเปเบญเบเบเบตเปเบเปเบฒเบเบเบฐเบญเปเบฒเบเบเปเบฝเบงเบเบฑเบ Waf, เบฅเบญเบเปเบเบดเปเบ build.py เปเบฅเบฐเบเบฐเบเบญเบเบเบฑเบ bake.
3.4.1 เบเบฒเบเบเปเปเบชเปเบฒเบเบเปเบงเบ build.py
เบฅเบฐโเบกเบฑเบโเบฅเบฐโเบงเบฑเบ เบเบฑเปเบเบเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเปเบกเปเบเบกเบตเบเบฝเบเปเบเปเบเบฒเบเบชเบฐเบเบฑเบ archive เปเบซเบผเปเบเบเบตเปเปเบเปเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเปเบเบดเบเบเบตเป; เปเบฅเบฐเบเปเปเปเบเปเบเบฒเบงเปเบซเบผเบเบเปเบฒเบ git เบซเบผเบท bake.
เปเบกเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบฒเบเบเปเบญเบ เปเบฒเบ เบเบฒเบ, เปเบ ns-3-allinone เบกเบตเบชเบฐเบเบดเบเบเบตเปเบกเบตเบเบฐเปเบซเบเบเบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบฐเบเบญเบเบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบเบเบถเปเบ. เบกเบฑเบเบเบทเบเปเบญเบตเปเบเบงเปเบฒ build.py. เปเบเบโเบเบฒเบโเบเบตเปโเบเบฐโเบชเปเบฒเบโเบเบฑเปเบโเปเบเบโเบเบฒเบโเบชเปเบฒโเบฅเบฑเบโเบเปเบฒเบโเปเบโเบงเบดโเบเบตโเบเบตเปโเปเบเบฑเบโเบเบฐโเปเบซเบเบโเบเบตเปโเบชเบธเบโ. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบฒเบเบเบดเบเบเบฑเปเบเปเบเบเบเบดเปเบชเบเปเบฅเบฐเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ ns-3 เบกเบฑเบเบเบฐเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบฅเบฐเบเบปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบญเบเบเบปเบเปเบญเบเบเบญเบ ns-3, Waf, เปเบเบดเปเบเบเบฐเบเบทเบเบเปเบฒเบชเบฐเปเบซเบเบตเบเปเปเบกเบฒเปเบเบเบปเบเปเบเบฐเบเปเบฒเบเบตเป.
เบเปเบฒเปเบเบปเปเบฒเบเบฒเบงเปเบซเบผเบเปเบเบเปเบเป เปเบฒเบ เบเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบญเบเบเปเบฒเบ ~/เบเปเบญเบเปเบฎเบฑเบเบงเบฝเบ เปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบกเบตเบเบทเปเปเบเบฑเปเบ ns-allinone-3.29. เบเบฐเบฅเบธเบเบฒเปเบชเปเบเปเปเปเบเบเบตเป:
$ ./build.py --enable-examples --enable-tests
เปเบกเบทเปเบญเบเบทเบเปเบญเบตเปเบ build.py เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเปเบเบฒเบเปเบเปเบเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเปเบเบทเปเบญเบชเปเบฒเบเบเบปเบงเบขเปเบฒเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเปเบเปเปเบเบเบฒเบเบชเบญเบเบเบตเป, เปเบเบดเปเบเบเปเปเปเบเปเบชเปเบฒเบเบเบถเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบ ns-3. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเบเบเบฒเบเบเบฑเบเบชเปเบฒเบเปเบกเบเบนเบเบเบตเปเบกเบตเบขเบนเปเบเบฑเบเบซเบกเบปเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบ ns-3 เปเบเบเบเปเปเบกเบตเบเบปเบงเบขเปเบฒเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบ, เบซเบผเบทเบเบปเบเปเบงเบฑเปเบเปเบกเบเบนเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบเบเบญเบเบเปเบฒเบ.
เบเปเบฒเบโเบเบฐโเปเบซเบฑเบโเบซเบผเบฒเบโเบเปเปโเบเบงเบฒเบกโเบเบปเบโเบเบฐโเบฅเบดเบ compiler เบชเบฐโเปเบเบโเปเบเบ script เบเบฑเปเบโเบเบตเปโเบกเบฑเบโเบชเปเบฒเบโเบเบฒเบโเบชเปเบงเบโเบเปเบฒเบเปโเบเบตเปโเบเปเบฒเบโเปเบเปโเปเบซเบผเบโ. เบเปเบฒเบญเบดเบเบชเบฐเบเบฃเบดเบเบเบฐเบเบฐเบเบฒเบเบฒเบกเบชเปเบฒเบเบเบปเบงเปเบเบทเปเบญเบเปเบซเบง เปเบเบเบฑเบเบเบดเบก, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเบเบนเบเบกเบฑเบ pybindgen เปเบฅเบฐเบชเบธเบเบเปเบฒเบ ns-3. เปเบกเบทเปเบญเบเบฐเบเบงเบเบเบฒเบเบชเปเบฒเปเบฅเบฑเบ, เบเปเบฒเบเบเบงเบเปเบเบดเปเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
Waf: Leaving directory '/path/to/workspace/ns-allinone-3.29/ns-3.29/build'
'build' finished successfully (6m25.032s)
Modules built:
antenna aodv applications
bridge buildings config-store
core csma csma-layout
dsdv dsr energy
fd-net-device flow-monitor internet
internet-apps lr-wpan lte
mesh mobility mpi
netanim (no Python) network nix-vector-routing
olsr point-to-point point-to-point-layout
propagation sixlowpan spectrum
stats tap-bridge test (no Python)
topology-read traffic-control uan
virtual-net-device visualizer wave
wifi wimax
Modules not built (see ns-3 tutorial for explanation):
brite click openflow
Leaving directory ./ns-3.29
เปเบเบชเบฒเบกเปเบเบงเบชเบธเบเบเปเบฒเบเบเบญเบเบฅเบฒเบเบเบทเปเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบเปเปเบเบงเบฒเบกเบเปเบฝเบงเบเบฑเบเปเบกเบเบนเบเบเบตเปเบเปเปเปเบเปเบชเปเบฒเบเบเบถเปเบ:
Modules not built (see ns-3 tutorial for explanation):
brite click
เบเบตเปเบเบฝเบเปเบเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบฒเบเปเบกเบเบนเบ ns-3 เบเบตเปเบเบถเปเบเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฒเบเบเบญเบเบญเบฒเบเบเบฐเบเปเปเบเบทเบเบชเปเบฒเบเบเบถเปเบ, เบซเบผเบทเบงเปเบฒเบเบงเบเบกเบฑเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเป. เบเบตเปเบเปเปเปเบเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ simulator เบเปเปเปเบเปเบเบฐเบเบญเบเบซเบผเบทเปเบกเบเบนเบเบเบฐเบเบญเบเบเบฐเบเปเปเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบเบทเบเบเปเบญเบ.
3.4.2 เบเบฒเบเบเปเปเบชเปเบฒเบเบเปเบงเบ Bake
เบเปเบฒเบเปเบฒเบเปเบเป bake เบเปเบฒเบเปเบเบดเบเปเบเบทเปเบญเปเบญเบปเบฒเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเบเบฒเบ repositories เปเบเบเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเบทเบเบเปเปเปเบเปเบกเบฑเบเปเบเบทเปเบญเบชเปเบฒเบ ns-3. เปเบ:
$ ./bake.py build
เปเบฅเบฐเบเปเบฒเบเบเบงเบเปเบซเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ:
>> Building pybindgen-0.19.0.post4+ng823d8b2 - OK
>> Building netanim-3.108 - OK
>> Building ns-3.29 - OK
เบงเปเบญเบเปเบง: เบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเบฑเบเบเบฑเปเบเบเบญเบเบเบฒเบเบเบฒเบงเปเบซเบผเบ เปเบฅเบฐเบชเปเบฒเบเบเปเบญเบกเบเบฑเบเปเบเบเบเบฒเบเปเบเบซเบฒ "bake.py deploy".
เบเบฒเบเบเบฐเบเบญเบเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเปเบปเบเบญเบฒเบเบเบฐเบฅเบปเปเบกเปเบซเบฅเบง, เปเบเปเบเบฒเบเบเบฐเบเบญเบเบเบฐเบเบณเปเบเบตเบเบเปเปเปเบ เบเปเบฒเบเปเปเบเบณเปเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเปเบเปเบถเปเบ. เบเบปเบงเบขเปเบฒเบ, เบเบฑเบเบซเบฒเบเบฒเบเปเบเบทเปเบญเบเบเบตเปเบเบตเปเบเปเบฒเบเบกเบฒเปเบกเปเบเบชเบดเปเบเบเบฑเปเบ castxml เบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฐเบเบญเบเปเบเบเปเบเบทเปเบญเบเบกเบท bake เบเปเปเปเบกเปเบเบขเบนเปเปเบเบเบธเบเปเบงเบเบต. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเปเปเบเบงเบฒเบกเปเบเบเบเบตเปเบเบฐเบเบฒเบเบปเบ:
>> Building castxml - Problem
> Problem: Optional dependency, module "castxml" failed
This may reduce the functionality of the final build.
However, bake will continue since "castxml" is not an essential dependency.
For more information call bake with -v or -vvv, for full verbose mode.
เปเบเบดเบเบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, castxml เบเปเบญเบเบเบฒเบเบเบฝเบเปเบเปเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเบเบนเบเบกเบฑเบ Python เบเบตเปเบกเบตเบเบฒเบเบเบฑเบเบเบธเบ. เบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเปเบชเปเบงเบเปเบซเบเปเบเปเปเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป (เบขเปเบฒเบเบซเบเปเบญเบเบเบปเบเบเปเบงเบฒเบเบงเบเปเบเบปเบฒเบเปเบฝเบ ns-3), เบเบฑเปเบเบเบฑเปเบเบเปเบฒเปเบเบทเบญเบเบเบฑเปเบเบเปเบฒเบงเบชเบฒเบกเบฒเบเบเบทเบเบฅเบฐเปเบฅเบตเบเบขเปเบฒเบเบเบญเบเปเบเบชเปเบฒเบฅเบฑเบเปเบเบเบฑเบเบเบธเบเบฑเบ.
เบเปเบฒเบกเบฑเบเบฅเบปเปเบกเปเบซเบฅเบง, เบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเปเบเบฐเปเบซเปเบเปเบฒเปเบเบฐเบเปเบฒเปเบเปเปเบเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเบงเบฒเบกเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเบตเปเบเบฒเบเบซเบฒเบเปเบ:
$ ./bake.py show
เบเบฒเบเบเบถเปเบเบเบฑเบเบเปเบฒเบเปเบเบญเบเปเบเบฑเบเปเบเบเบเบตเปเปเบเบปเปเบฒเบเบฐเบเบฒเบเบฒเบกเบชเปเบฒเบเบเบฐเบเบทเบเบฅเบฐเบเบธเปเบงเป.
3.4.3 เบชเปเบฒเบเบเปเบงเบ Waf
เปเบเบดเบเบเบธเบเบเบตเป, เปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเปเปเบชเปเบฒเบ ns-3, เบเบงเบเปเบฎเบปเบฒเปเบเปเบชเบฐเบเบดเบ build.py, เบซเบผเบทเปเบเบทเปเบญเบเบกเบท bake. เปเบเบทเปเบญเบเบกเบทเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบชเปเบฒเบ ns-3 เปเบฅเบฐเบเบฒเบเบฎเบฑเบเบชเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบ. เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเบฒเบเบเปเปเบชเปเบฒเบเบเบงเบเปเบเบปเบฒเปเบเปเปเบเบทเปเบญเบเบกเบทเบเปเปเบชเปเบฒเบ Waf เบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบต ns-3. Waf เบเบดเบเบเบฑเปเบเบเปเบงเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ ns-3. เบเบนเปโเปเบเปโเบชเปเบงเบโเปเบซเบเปโเบเปเบฒเบโเปเบโเบเปเบฒโเปเบเปโเปเบเบโเบเบปเบโเบขเปเบฒเบโเบงเปเบญเบโเปเบงโเปเบเบทเปเบญโเบเปเบฒโเบเบปเบโเบเปเบฒโเปเบฅเบฐโเบเบฒเบโเบเบฐโเบเบญเบ nsโ3โ Waf. เบเบฑเปเบเบเบฑเปเบ, เปเบเบทเปเบญเบชเบทเบเบเปเป, เบเบฐเบฅเบธเบเบฒเปเบเบเบตเปเปเบเปเบฅเบเบฐเบเปเบฅเบต ns-3 เบเบตเปเบเปเบฒเบเบชเปเบฒเบเบเบถเปเบเปเบเปเบเบทเปเบญเบเบเบปเปเบ.
เบเบตเปเบเปเปเปเบกเปเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบกเบเบงเบเปเบเปเบงเบฅเบฒเบเบตเป, เปเบเปเบกเบฑเบเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบเบฐเบเบดเบเบเบฒเบกเปเบฅเบฑเบเบเปเบญเบเปเบฅเบฐเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบเบเบฒเบ. เบญเบฒเบเบเบฐเปเบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบชเบธเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบกเปเบเบเบฒเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบชเบฐเบเบฑเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเปเบฒเบเปเบเปเบเบฑเปเบเบเปเบฒเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบเปเบเบทเปเบญเบชเปเบฒเบเบชเบฐเบเบฑเบเบเบตเบเบฑเบ. เบฅเบญเบเปเบเบดเปเบเปเบเบเบเบฒเบเปเบเบทเปเบญเบชเปเบฒเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบ. เปเบเบทเปเบญเบญเบฐเบเบดเบเบฒเบเปเบซเป Waf เบงเปเบฒเบกเบฑเบเบเบงเบเบเบฐเบชเปเบฒเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเปเบเบฐเบเบญเบเบกเบตเบเบปเบงเบขเปเบฒเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบ, เบเปเบฒเบเบเบฐเบเปเบญเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
$ ./waf clean
$ ./waf configure --build-profile=optimized --enable-examples --enable-tests
เบเบตเปเบเบฐเปเบเบตเบเบเบปเบง Waf เบขเบนเปเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบเบเบดเปเบ (เปเบเบทเปเบญเบเบงเบฒเบกเบชเบฐเบเบงเบเบเบญเบเบเปเบฒเบ). เบเปเบฒเบชเบฑเปเบเบเปเบฒเบญเบดเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบเบฒเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเบเปเบฒเบเบกเบฒ, เบเบตเปเปเบกเปเบเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเปเปเบเปเบฒเปเบเบฑเบเบขเปเบฒเบเปเบเบฑเปเบกเบเบงเบ, เปเบเปเบกเบฑเบเปเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบต (เบเบฑเบเปเบเบดเปเบเบเบฒเบเบชเปเบฒเบเปเบเบฃเปเบเบฅเปเบเปเบฒเบเบฅเบธเปเบกเบเบตเป); เบเบตเปเบเบฐเปเบเบฑเบเบเบฒเบเบฅเบถเบเบซเปเบญเบเบชเบฐเปเบธเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเปเบกเบทเปเบญเบเปเบญเบ เปเบฅเบฐเปเบเบฅเปเบงเบฑเบเบเบธเบเบตเปเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต เบชเปเบฒเบ/. เปเบกเบทเปเบญเปเบเบเบเบฒเบเบเบทเบ configured เปเบฅเบฐเบฅเบฐเบเบปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบฐเบเบงเบเบชเบญเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเปเบฒเบเป, เบเปเบฒเบเบเบงเบเปเบซเบฑเบเบเบปเบเปเบเปเบฎเบฑเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบเปเปเปเบเบเบตเป:
Setting top to : /home/ns3user/workspace/bake/source/ns-3-dev
Setting out to : /home/ns3user/workspace/bake/source/ns-3-dev/build
Checking for 'gcc' (C compiler) : /usr/bin/gcc
Checking for cc version : 7.3.0
Checking for 'g++' (C++ compiler) : /usr/bin/g++
Checking for compilation flag -march=native support : ok
Checking for compilation flag -Wl,--soname=foo support : ok
Checking for compilation flag -std=c++11 support : ok
Checking boost includes : headers not found, please ,!provide a --boost-includes argument (see help)
Checking boost includes : headers not found, please ,!provide a --boost-includes argument (see help)
Checking for program 'python' : /usr/bin/python
Checking for python version >= 2.3 : 2.7.15 python-config : /usr/bin/python-config
Asking python-config for pyembed '--cflags --libs --ldflags' flags : yes
Testing pyembed configuration : yes
Asking python-config for pyext '--cflags --libs --ldflags' flags : yes
Testing pyext configuration : yes
Checking for compilation flag -fvisibility=hidden support : ok
Checking for compilation flag -Wno-array-bounds support : ok
Checking for pybindgen location : ../pybindgen ,!(guessed)
Checking for python module 'pybindgen' : 0.19.0. ,!post4+g823d8b2
Checking for pybindgen version : 0.19.0. ,!post4+g823d8b2
Checking for code snippet : yes
Checking for types uint64_t and unsigned long equivalence : no
Checking for code snippet : no
Checking for types uint64_t and unsigned long long equivalence : yes
Checking for the apidefs that can be used for Python bindings : gcc-LP64
Checking for internal GCC cxxabi : complete
Checking for python module 'pygccxml' : not found
Checking for click location : not found
Checking for program 'pkg-config' : /usr/bin/pkg- ,!config
Checking for 'gtk+-3.0' : not found
Checking for 'libxml-2.0' : yes
checking for uint128_t : not found
checking for __uint128_t : yes
Checking high precision implementation : 128-bit integer ,!(default)
Checking for header stdint.h : yes
Checking for header inttypes.h : yes
Checking for header sys/inttypes.h : not found
Checking for header sys/types.h : yes
Checking for header sys/stat.h : yes
Checking for header dirent.h : yes
Checking for header stdlib.h : yes
Checking for header signal.h : yes
Checking for header pthread.h : yes
Checking for header stdint.h : yes
Checking for header inttypes.h : yes
Checking for header sys/inttypes.h : not found
Checking for library rt : yes
Checking for header sys/ioctl.h : yes
Checking for header net/if.h : yes
Checking for header net/ethernet.h : yes
Checking for header linux/if_tun.h : yes
Checking for header netpacket/packet.h : yes
Checking for NSC location : not found
Checking for 'sqlite3' : not found
Checking for header linux/if_tun.h : yes
Checking for python module 'gi' : 3.26.1
Checking for python module 'gi.repository.GObject' : ok
Checking for python module 'cairo' : ok
Checking for python module 'pygraphviz' : 1.4rc1
Checking for python module 'gi.repository.Gtk' : ok
Checking for python module 'gi.repository.Gdk' : ok
Checking for python module 'gi.repository.Pango' : ok
Checking for python module 'gi.repository.GooCanvas' : ok
Checking for program 'sudo' : /usr/bin/sudo
Checking for program 'valgrind' : not found
Checking for 'gsl' : not found python-config : not found
Checking for compilation flag -fstrict-aliasing support : ok
Checking for compilation flag -fstrict-aliasing support : ok
Checking for compilation flag -Wstrict-aliasing support : ok
Checking for compilation flag -Wstrict-aliasing support : ok
Checking for program 'doxygen' : /usr/bin/doxygen
---- Summary of optional ns-3 features:
Build profile : optimized
Build directory :
BRITE Integration : not enabled (BRITE not enabled (see option --with- ,!brite))
DES Metrics event collection : not enabled (defaults to disabled)
Emulation FdNetDevice : enabled
Examples : enabled
File descriptor NetDevice : enabled
GNU Scientific Library (GSL) : not enabled (GSL not found)
Gcrypt library : not enabled
(libgcrypt not found: you can use ,!libgcrypt-config to find its location.) GtkConfigStore : not enabled (library 'gtk+-3.0 >= 3.0' not fou nd)
MPI Support : not enabled (option --enable-mpi not selected)
ns-3 Click Integration : not enabled (nsclick not enabled (see option --with- ,!nsclick))
ns-3 OpenFlow Integration : not enabled (Required boost libraries not found)
Network Simulation Cradle : not enabled (NSC not found (see option --with-nsc))
PlanetLab FdNetDevice : not enabled (PlanetLab operating system not detected ,!(see option --force-planetlab)) PyViz visualizer : enabled
Python API Scanning Support : not enabled (Missing 'pygccxml' Python module)
Python Bindings : enabled
Real Time Simulator : enabled
SQlite stats data output : not enabled (library 'sqlite3' not found)
Tap Bridge : enabled
Tap FdNetDevice : enabled
Tests : enabled
Threading Primitives : enabled
Use sudo to set suid bit : not enabled (option --enable-sudo not selected)
XmlIo : enabled
'configure' finished successfully (6.387s)
เบเบฐเบฅเบธเบเบฒเบชเบฑเบเปเบเบเบเบฒเบเบชเปเบงเบเบชเบธเบเบเปเบฒเบเบเบญเบเบฅเบฒเบเบเบฒเบเบเปเบฒเบเปเบเบดเบ. เบเบฒเบเบเบปเบงเปเบฅเบทเบญเบ ns-3 เบเปเปเปเบเปเบเบทเบเปเบเบตเบเปเบเปเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบซเบผเบทเบเปเบญเบเบเบฒเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบฅเบฐเบเบปเบเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบเบทเบเบเปเบญเบ. เบเบปเบงเบขเปเบฒเบ, เปเบเบทเปเบญเปเบเบตเบเปเบเป XmlTo, เบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเปเบญเบเบกเบตเบขเบนเปเปเบเบฅเบฐเบเบปเบ libxml-2.0. เบเปเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเบเปเปเบเบปเบเปเบฅเบฐเบเบฑเบเบเบฑเบ ns-3 เบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเบเปเปเปเบเปเปเบเบตเบเปเบเป, เบเปเปเบเบงเบฒเบกเบเบฐเบเบทเบเบชเบฐเปเบเบ. เบเบฑเบเบชเบฑเบเปเบเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบเปเบเปเบฒเบชเบฑเปเบ sudo เปเบเบทเปเบญเบเปเบฒเบเบปเบ suid bit "เบเบฑเปเบ ID เบเบธเปเบกเปเบเปเบงเบฅเบฒเปเบฅเปเบ" เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบเบเบฒเบ. เบกเบฑเบเบเปเปเปเบเปเบเบทเบเปเบเบตเบเปเบเปเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเบเบฒเบเบปเบเปเบเบฑเบ "เบเปเปเปเบเปเปเบเบตเบเปเบเป". เบชเบธเบเบเปเบฒเบ, เปเบเบทเปเบญเปเบซเปเปเบเปเบฎเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเปเบเบตเบเปเบเป, เปเบเป Waf เบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบต --check-config
.
เบเบญเบเบเบตเปเปเบซเปเบเบฑเบเบเบทเบเปเบ เปเบฅเบฐเบเปเบฝเบเบเบฑเบเปเบเบชเปเบฒเบ debug เบเบตเปเบกเบตเบเบปเบงเบขเปเบฒเบ เปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบ.
$ ./waf clean
$ ./waf configure --build-profile=debug --enable-examples --enable-tests
เบเบฝเบงเบเบตเปเบฅเบฐเบเบปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบทเบเบเบฑเปเบเบเบถเปเบ เปเบฅเบฐเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบงเบตเบเบฑเบ debug เบเบญเบเปเบเบฃเปเบเบฃเบก ns-3 เปเบเบเบเบฒเบเบเบดเบกเบเปเบฒเบเป:
$ ./waf
เบเบฑเปเบเบเบญเบเบเปเบฒเบเปเบเบดเบเบญเบฒเบเบเบฐเบเบฑเบเบเบฑเบเปเบซเปเบเปเบฒเบเบชเปเบฒเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบฅเบฐเบเบปเบ ns-3 เบชเบญเบเบเบฑเปเบ, เปเบเปเบเบญเบเบเบตเปเปเบเบปเปเบฒเบฎเบนเปเบงเบดเบเบตเบเบฒเบเบเปเบฝเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบฐเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบตเบเบตเปเบชเบธเบ.
เปเบเบทเปเบญเบเบงเบเปเบเบดเปเบเบงเปเบฒเปเบเบผเปเบเบฅเปเปเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเบซเบเบปเบเบเปเบฒเปเบเบเบเบฒเบ, เบกเบตเบเปเบฒเบชเบฑเปเบ:
$ ./waf --check-profile
Waf: Entering directory `/path/to/ns-3-allinone/ns-3.29/build'
Build profile: debug
เบชเบฐเบเบฒเบเบฐเบเบฒเบเบเปเบฒเบเปเบเบดเบ build.py เบเบฑเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเปเบเปเบเบฝเบ --enable-examples
ะธ --enable-tests
, เปเบเปเบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบ Waf เบกเบฑเบเบเปเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบเบเบปเบ. เบเบปเบงเบขเปเบฒเบ, เบญเบฑเบเบเบตเปเบเบฐเบเปเปเปเบฎเบฑเบเบงเบฝเบ:
$ ./build.py --disable-python
เบเบฐเบเบดเบเบดเบฅเบดเบเบฒเบเบฐเปเบเบฑเบเปเบเบเบเบตเป:
build.py: error: no such option: --disable-python
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบดเปเบชเบ - - เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบกเปเบเบเบเปเบฒเบ wafเบเบฑเปเบเบเบฑเปเบเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเปเบเบฐเปเบฎเบฑเบเบงเบฝเบ:
$ ./build.py -- --disable-python
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบกเบฑเบเบชเปเบฒเบเบเปเบฒเบชเบฑเปเบเบเบปเปเบเบเป ./waf configure --disable-python. เบเบตเปเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเบฐเบเปเบฒเปเบเบฐเบเปเบฒเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบ Waf.
เบเบฒเบเบเบฑเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบเบฒเบเบชเปเบฒเบ
ns-3 เบฅเบธเปเบเบเบทเบเบเบปเบเบชเบญเบเบขเบนเปเปเบเบเบปเบงเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบ C ++ เบซเบผเปเบฒเบชเบธเบเบเบตเปเบกเบตเบขเบนเปเปเบเปเบงเบฅเบฒเบเบญเบเบเบฒเบเบเปเบญเบ Linux เปเบฅเบฐ MacOS เบเบปเปเบงเปเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบกเบทเปเบญเปเบงเบฅเบฒเบเปเบฒเบเปเบ, เบเบฒเบเปเบเบเบขเบฒเบเปเบซเบกเปเปเบเปเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒเปเบเบ compilers เปเบซเบกเป, เปเบฅเบฐ compilers เปเบซเบกเปเปเบซเบผเบปเปเบฒเบเบตเปเบกเบตเปเบเบงเปเบเปเบกเบเบตเปเบเบฐ pedantic เบซเบผเบฒเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเบทเบญเบเปเบ. ns-3 configure เบเบฒเบเบเปเปเบชเปเบฒเบเบเบญเบเบกเบฑเบเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบทเบญเบเปเบเบเบฑเบเบซเบกเบปเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเบเปเบฒเบฅเบฑเบเบเปเบฒเปเบเบตเบเบเบฒเบเบชเบฐเบเบฑเบเปเบเบปเปเบฒเบขเบนเปเปเบเบฅเบฐเบเบปเบเปเบซเบกเป, เบเปเบฒเปเบเบทเบญเบ compiler เบญเบฒเบเบเบฐเบขเบธเบเปเบเบปเบฒเบเบฒเบเบเปเปเบชเปเบฒเบ.
เบเบปเบงเบขเปเบฒเบ, เบเปเบญเบเบซเบเปเบฒเบเบตเปเบกเบตเบเบฒเบเบเปเบญเบ nsโ3.28 เบชเปเบฒเบฅเบฑเบ Fedora 28, เปเบเบดเปเบเบฅเบงเบกเบกเบตเบฎเบธเปเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบซเบกเป. gcc (gcc-8). เบเบฒเบเบชเปเบฒเบเบเบฒเบเบเปเบญเบ ns-3.28 เบซเบผเบทเบฎเบธเปเบเบเปเบญเบเบซเบเปเบฒเบเบฒเบเปเบเป Fedora 28, เบเปเบงเบเบเบฒเบเบเบดเบเบเบฑเปเบ Gtk2+, เบเปเปเบเบดเบเบเบฒเบเบเปเปเปเบเบเบตเปเบเบฐเปเบเบตเบเบเบทเปเบ:
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:59:8: error: unnecessary parentheses ,!in declaration of โ__gtk_reserved1โ [-Werror=parentheses] void (*__gtk_reserved1);
เปเบเบเบฒเบเบเปเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบ ns-3.28.1, เปเบ Waf เบกเบตเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเปเบเปเปเบเบเบฑเบเบซเบฒเปเบซเบผเบปเปเบฒเบเบตเป. เบกเบฑเบเบเบดเบเบเบฒเบเบเบฑเปเบเบเบธเบ "-Wrror" เปเบ g++ เปเบฅเบฐ clang++. เบเบตเปเปเบกเปเบเบเบปเบงเปเบฅเบทเบญเบ "--disable-wrror" เปเบฅเบฐเบเปเบญเบเบเบทเบเบเบณเปเบเปเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบณเบเบปเบเบเปเบฒ:
$ ./waf configure --disable-werror --enable-examples --enable-tests
เบเบฑเปเบเบเปเบฒเบซเบผเบทเบเบฐเบเบญเบ
เบเบฒเบเบเปเบฒเบชเบฑเปเบ Waf เบกเบตเบเบงเบฒเบกเบซเบกเบฒเบเบเบฝเบเปเบเปเปเบเปเบฅเบเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒ, เปเบฅเบฐเบเบฒเบเบญเบฑเบเปเบกเปเบเบเบทเบเบเปเบญเบเบเบฝเบเปเบเปเปเบเปเบฅเบเบฐเบเบฒเบเบเปเปเบชเปเบฒเบ. เบเบปเบงเบขเปเบฒเบ: เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบฒเบเบเปเบฒเบฅเบญเบ ns-3, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเบเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบดเบ เปเบเป เบเบฒเบเบเปเบฒเปเบเป sudo, เบเบฑเปเบเบเบตเปเปเบเปเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเปเบเบดเบ. เบเบตเปเบเบฐ override เบเปเบฒเบชเบฑเปเบเบเบฑเปเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ, เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฝเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป, เปเบเบดเปเบเบเบฐเบเบญเบเบกเบตเบเบปเบงเบขเปเบฒเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบ.
$ ./waf configure --enable-sudo --enable-examples --enable-tests
เบเปเบฒเบเปเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบตเป Waf เบเบฐเปเบเบตเบเบเบปเบง sudoเปเบเบทเปเบญเบเปเบฝเบเปเบเบฃเปเบเบกเบชเปเบฒเบเบเบฑเบญเบเปเบเบฑเบเบฅเบฐเบซเบฑเบ emulation เปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบงเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบ เบฎเบฒเบ. เบเบฒเบ Waf เบกเบตเบซเบผเบฒเบเบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบเบเบตเปเบกเบตเบขเบนเปเบชเปเบฒเบฅเบฑเบเบเบฑเปเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบฐเบเบฒเบเบเปเปเบชเปเบฒเบ. เปเบเบทเปเบญเบชเบณเบซเบผเบงเบเบเบปเบงเปเบฅเบทเบญเบเบเบญเบเบเปเบฒเบ, เบเบฐเบฅเบธเบเบฒเปเบชเป:
$ ./waf --help
เปเบเบเบฒเบเบเปเปเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเปเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบ.
เปเบเบฃเปเบเบฅเปเบเบฐเบเบญเบ
เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบซเบฑเบเปเบฅเปเบงเบงเปเบฒเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบงเปเบ Waf เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบธเบกเบเบธเบก debug ะธ เบเบตเปเบเบตเบเบตเปเบชเบธเบ:
$ ./waf --build-profile=debug
เบเบฑเบเบกเบตเปเบเบฃเปเบเบฅเปเบเบฒเบเบเบฐเบเบญเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบฒเบ, เบเปเบญเบ. เบเบฒเบเปเบฅเบทเบญเบ -d
เปเบกเปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ --build-profile
. เปเบเบฃเปเบเบฅเปเบเบฒเบเบเปเปเบชเปเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเปเบเปเบเบฒเบเบเบฑเบเบเบถเบ, เบเบฒเบเบขเบทเบเบขเบฑเบ, เปเบฅเบฐเบชเบฐเบซเบผเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบ:
เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบเบฒเบเบเบฑเบเบเบถเบ เปเบฅเบฐ เบเบฒเบเบขเบทเบเบขเบฑเบเปเบกเปเบเบกเบตเบขเบนเปเปเบเบเบฒเบเบชเปเบฒเบเบเบตเบเบฑเบเปเบเบปเปเบฒเบเบฑเปเบ. เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเปเบเบฐเบเปเบฒเปเบกเปเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบชเบฐเบเบดเบเบเบญเบเบเปเบฒเบเปเบเปเบซเบกเบเบเบตเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเปเบฒเบเปเบญเบ (เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบชเบฐเบเบดเบเบดเบซเบผเบทเบเบฒเบฅเบฒเบกเบดเปเบเบต) เปเบเปเบเบฃเปเบเบฅเปเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก.
เบเปเบฒเบเปเบฒเบเบกเบตเบฅเบฐเบซเบฑเบเบเบตเปเบเบงเบเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฝเบเปเบเปเปเบเบเบฒเบเปเบเบฃเปเบเบฅเปเบเบฒเบเบเปเปเบชเปเบฒเบ, เปเบเป Code Wrapper Macro:
NS_BUILD_DEBUG (std::cout << "Part of an output line..." << std::flush; timer.Start ,!()); DoLongInvolvedComputation ();
NS_BUILD_DEBUG (timer.Stop (); std::cout << "Done: " << timer << std::endl;)
เปเบฅเบตเปเบกเบเบปเปเบ, Waf เบชเบฐเบเบฒเบเบเบตเปเบชเปเบฒเบเบชเบดเปเบเบเบฐเบเบดเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบชเปเบฒเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบฅเบฐเบเบธเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบปเบเบเบฐเบฅเบดเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบเปเบเปเบเบฒเบเปเบฅเบทเบญเบ -โฏ-out
เบเบปเบงเบขเปเบฒเบ:
$ ./waf configure --out=my-build-dir
เปเบเบเบเบฒเบเบชเบปเบกเบเบปเบเบเบฒเบเบเบตเปเบเบฑเบเบเบฒเบเบชเปเบฒเบเปเบเบฃเปเบเบฅเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเบฐเบซเบผเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบฅเบทเบญเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ:
$ ./waf configure --build-profile=debug --out=build/debug
$ ./waf build
...
$ ./waf configure --build-profile=optimized --out=build/optimized
$ ./waf build
...
เปเบเบดเปเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบซเบผเบฒเบเบชเบฐเบเบฒเปเบซเปเบเปเบเปเปเบเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฝเบเปเบซเบกเปเบเบฒเบเบเบฐเบเบญเบเบซเบฅเปเบฒเบชเบธเบเปเบเปเบเปเบฅเบฐเบเบฑเปเบ. เปเบกเบทเปเบญเบเปเบฒเบเบเปเบฝเบเปเบเบซเบฒเปเบเบฃเปเบเบฅเปเบญเบทเปเบ, Waf เบเบฐเบฅเบงเบเบฅเบงเบกเบเบฝเบเปเบเปเบกเบฑเบ, เปเบเบเบเปเปเบกเบตเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบ.
เปเบกเบทเปเบญเบเปเบฒเบเบเปเบฝเบเบเบฒเบเบชเปเบฒเบเปเบเบฃเปเบเบฅเปเปเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบเปเบเบทเปเบญเปเบซเปเบเบปเบงเปเบฅเบทเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฝเบงเบเบฑเบเปเบเปเบเปเบฅเบฐเบเบฑเปเบ. เบเบฒเบเบเปเบฒเบเบปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเปเบฒเบเบงเบเบซเบเบถเปเบเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเบซเบผเบตเบเปเบงเบฑเปเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ:
$ export NS3CONFIG="--enable-examples --enable-tests"
$ export NS3DEBUG="--build-profile=debug --out=build/debug"
$ export NS3OPT=="--build-profile=optimized --out=build/optimized"
$ ./waf configure $NS3CONFIG $NS3DEBUG
$ ./waf build
...
$ ./waf configure $NS3CONFIG $NS3OPT
$ ./waf build
Compilers เปเบฅเบฐเบเบธเบ
เปเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเปเบเบดเบ Waf เปเบเบทเปเบญเบชเปเบฒเบ ns-3 เปเบเป C++ compiler เบเบฒเบ GCC ( g ++). เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฝเบเบญเบฑเบเบเบตเปเบเปเบฒเบเปเบเป Waf C++ compiler, เปเบเบเบเปเบฒเบเบปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก CXX. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเบฒเบเบเปเบฒเปเบเป C ++ compiler Clang, clang ++,
$ CXX="clang++" ./waf configure
$ ./waf build
เปเบเบเบฒเบเบเบฝเบงเบเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบ configure เปเบเป Waf เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบฒเบเปเบเบเบขเบฒเบเปเบเบเปเบเป distcc:
$ CXX="distcc g++" ./waf configure
$ ./waf build
เบเปเปเบกเบนเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบ distcc เปเบฅเบฐเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบฒเบเปเบเบเบขเบฒเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเปเบขเบนเปเปเบเบซเบเปเบฒเปเบเบเบเบฒเบเปเบเบเบฒเบเปเบญเบเบฐเบชเบฒเบ. เปเบเบทเปเบญเปเบเบตเปเบกเบเบธเบ compiler เปเบกเบทเปเบญเบเบณเบเบปเบเบเปเบฒ ns-3, เปเบซเปเปเบเปเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก CXXFLAGS_EXTRA.
เบเบฒเบเบเบฑเปเบเบเปเบฒ
Waf เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบดเบเบเบฑเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบเบชเบฐเบเบฒเบเบเบตเปเบเปเบฒเบเปเปเบเบฅเบฐเบเบปเบ. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเบฅเบงเบเบฅเบงเบกเปเบฅเบฐเบเบฐเบเบดเบเบฑเบเปเบเปเปเบกเปเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต เบเบฒเบเบเปเปเบชเปเบฒเบ, เปเบฅเบฐเบเบฑเบเบเบฑเปเบเปเบเป Waf เบฎเบนเปเบชเบฐเบเบฒเบเบเบตเปเบเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบดเบเบเบฑเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบขเบนเปเบเปเบญเบเบญเบทเปเบ.
เบเปเบฒเบเบนเปเปเบเปเบกเบฑเบเบเบดเบเบเบฑเปเบเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเปเบชเปเบฒเบ, เบเบงเบเปเบเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบ ./waf เบเบดเบเบเบฑเปเบ. เบเปเบฒเบเปเบฒเบซเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบเปเบกเปเบ / usr / เบเปเบญเบเบเบดเปเบเปเบเบฒเบฐเบชเบฐเบเบฑเปเบ ./waf เบเบดเบเบเบฑเปเบ เบเบฐเบเบดเบเบเบฑเปเบเปเบเบเบเบฒเบเปเบ / usr / local / bin, เบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบ / usr / local / lib เปเบฅเบฐเปเบเบฅเป header เปเบ /usr/local/include. เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบชเบดเบ Superuser เบเบฐเบเปเบญเบเบเบทเบเบเบฑเปเบเบเปเบงเบเบเปเบฒเบเปเบฒเบซเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบปเบเบเบฐเบเบดเบเบฐเปเบเบฑเบ sudo ./waf เบเบดเบเบเบฑเปเบ. เปเบกเบทเปเบญเปเบเบตเบเบเบปเบง, Waf เบเบฐเปเบฅเบทเบญเบเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบชเปเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบซเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฒเบกเปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเบเบทเบเบเบฑเปเบเบเปเบฒเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเปเบญเบเบเบดเปเบ. เบเบฑเปเบเบเบฑเปเบเปเบกเบทเปเบญเบเบดเบเบเบฑเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบขเบนเปเปเบเบฅเบฐเบเบปเบ, เบกเบฑเบเปเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบตเบเบตเปเบเบฐเบเบงเบเปเบเบดเปเบเบงเปเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเบเบทเบเบเปเบญเบเบเบทเบเบเปเบฒเปเบเป. เบเบนเปโเปเบเปโเบชเบฒโเบกเบฒเบโเปเบฅเบทเบญเบโเบเบตเปโเบเบฐโเบเบดเบโเบเบฑเปเบโเบเบตเปโเบกเบตโเบเปเบฒโเบเปเบฒโเบซเบเปเบฒโเบเบตเปโเปเบเบโเบเปเบฒเบโเบเบฑเบโเปเบเบโเบเบฒเบโเบเปเบฒเบโเบเบฒเบโเปเบฅเบทเบญเบโเปเบโเบฅเบฐโเบซเบงเปเบฒเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโ --prefix
เบเบปเบงเบขเปเบฒเบ:
./waf configure --prefix=/opt/local
เบเปเบฒเบเปเปเบกเบฒ, เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเปเปเบชเปเบฒเบ, เบเบนเปเปเบเปเปเบเบปเปเบฒเปเบเปเบเบเปเบฒเบชเบฑเปเบเบเบฒเบเบเบดเบเบเบฑเปเบ ./waf
, เบเปเบฒเบเปเบฒเบซเบเปเบฒเบเบฐเบเบทเบเบเปเบฒเปเบเป /opt/local.
เบเบตเบกเบเบฒเบ ./waf clean
เบเปเบญเบเบเบทเบเบเปเบฒเปเบเปเบเปเบญเบเบเบตเปเบเบฐ configure เปเบเบเบเบฒเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเบฒเบเบเบดเบเบเบฑเปเบเบเบฐเบเปเบฒเปเบเป Waf เบเบฒเบโเปเบเปโเบเปเบฒโเบเปเบฒโเบซเบเปเบฒโเบเบตเปโเปเบเบโเบเปเบฒเบโเบเบฑเบโ.
เบเบฑเปเบเบเบฑเปเบ, เปเบเบทเปเบญเปเบเป ns-3 เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบซเบฒ ./waf install
. เบเบนเปเปเบเปเบชเปเบงเบเปเบซเบเปเบเบฐเบเปเปเบเปเบญเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเบตเปเปเบเบฒเบฐเบงเปเบฒ Waf เบเบฐเปเบเบฑเบเปเบญเบปเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบเบเบฐเบเบธเบเบฑเบเบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบชเปเบฒเบ, เปเบเปเบเบนเปเปเบเปเบเบฒเบเบเบปเบเบญเบฒเบเบเบฐเปเบซเบฑเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเปเบฒเบเบดเบเบเบฐเบเปเบฒเบเบญเบเบเบงเบเปเบเบปเบฒเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฑเบเบเบฒเปเบเบเบเบฒเบเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบต ns-3.
Waf เบเบฝเบง
เปเบเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบเบเบญเบเบเบปเปเบเปเบกเปเปเบซเบผเปเบ ns-3, เบกเบตเบเบฝเบเปเบเปเบซเบเบถเปเบ script Waf. เปเบกเบทเปเบญเบเปเบฒเบเปเบฅเบตเปเบกเปเบฎเบฑเบเบงเบฝเบ, เบเปเบฒเบเบเบฐเปเบเปเปเบงเบฅเบฒเบซเบผเบฒเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต scratch/
เบซเบผเบทเปเบฅเบดเบเปเบเบปเปเบฒเปเบเปเบsrc/...
เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบเปเบญเบเบเปเบฒเปเบเบตเบเบเบฒเบ Waf. เบเปเบฒเบเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเบเบทเปเบเปเบญเบเบเบตเปเบเปเบฒเบเบขเบนเปเปเบฅเบฐเปเบฅเปเบ Waf เบเบฑเปเบเบเปเปเปเบเบเบตเป:
$ ../../../waf ...
เปเบเปเบเบตเปเบเบฐเปเบเบฑเบเบเบฒเบ tedious เปเบฅเบฐเบกเบตเบเบงเบฒเบกเบเบดเบเบเบฒเบ, เบชเบฐเบเบฑเปเบเบกเบตเบงเบดเบเบตเปเบเปเปเบเบเบตเปเบเบตเบเบงเปเบฒ. เบซเบเบถเปเบเปเบเบงเบดเบเบตเบเบฒเบเบเบปเปเบงเปเบเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเปเบเบปเบงเปเบเปเปเบเบเปเปเบเบงเบฒเบกเปเบเบฑเปเบ: emacs เบซเบผเบท vim, เปเบเบชเบญเบเบเบญเบเบเบฐเบเบธเบก terminal เบเบทเบเปเบเบตเบ, เบซเบเบถเปเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบ ns-3, เปเบฅเบฐเบเบตเบชเบญเบเปเบกเปเบเปเบเปเปเบเบทเปเบญเปเบเปเปเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ. เบเปเบฒเปเบเบปเปเบฒเบกเบตเปเบเบปเปเบฒเบเบฑเปเบ เปเบฒเบ เบเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบชเบฒเบกเบฒเบเบเปเบงเบเปเบเป:
$ export NS3DIR="$PWD"
$ function waff { cd $NS3DIR && ./waf $* ; }
$ cd scratch
$ waff build
เปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบกเบเบนเบเบกเบฑเบเบญเบฒเบเบเบฐเปเบเบฑเบเบเบฒเบเบฅเปเปเบฅเบงเบเบเบตเปเบเบฐเปเบเบตเปเบกเบชเบฐเบเบดเบ waf trivial เปเบเบฑเปเบ exec ../../waf
. เบเบฐเบฅเบธเบเบฒ, เบขเปเบฒเปเบฎเบฑเบเปเบเบงเบเบฑเปเบ. เบเบตเปเปเบกเปเบเบเบงเบฒเบกเบชเบฑเบเบชเบปเบเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบซเบกเปเปเบฅเบฐ, เปเบกเบทเปเบญเปเบฎเบฑเบเบเปเปเบเบต, เปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเบเบฒเบเบเบตเปเบเบฐเบเบงเบเบเบปเบ. เบงเบดเบเบตเปเบเปเปเบเบเบตเปเบชเบฐเปเบเบเบเปเบฒเบเปเบเบดเบเปเบกเปเบเปเบชเบฑเปเบเบเบฒเบเบเบตเปเบเบงเบเปเบเป.
3.5 เบเบฒเบเบเบปเบเบชเบญเบ ns-3
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบซเบเปเบงเบเบเบฒเบเบเบฒเบเปเบเบเบขเบฒเบ ns-3 เปเบเบเบเบฒเบเปเบฅเปเบเบชเบฐเบเบดเบ ./test.py:
$ ./test.py
เบเบฒเบเบเบปเบเบชเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเปเบฒเปเบเบตเบเปเบเบเบฐเบซเบเบฒเบเบเบฑเบ Waf. เปเบเบเบตเปเบชเบธเบเปเบเบปเปเบฒเบเบงเบเบเบฐเปเบซเบฑเบเบเปเปเบเบงเบฒเบกเบเบตเปเปเบงเบปเปเบฒเบงเปเบฒ:
92 of 92 tests passed (92 passed, 0 failed, 0 crashed, 0 valgrind errors)
เบเบตเปเปเบกเปเบเบเปเปเบเบงเบฒเบกเบเบตเปเบชเปเบฒเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเบเบปเบ valgrind crashes, crashes เบซเบผเบทเบเบงเบฒเบกเบเบดเบเบเบฒเบ, เบเบตเปเปเบซเปเปเบซเบฑเบเปเบเบดเบเบเบฑเบเบซเบฒเบเปเบฝเบงเบเบฑเบเบฅเบฐเบซเบฑเบเบซเบผเบทเบเบงเบฒเบกเบเปเปเบชเบญเบเบเปเบญเบเบฅเบฐเบซเบงเปเบฒเบเปเบเบทเปเบญเบเบกเบทเปเบฅเบฐเบฅเบฐเบซเบฑเบ.
เบเบญเบเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบเบฐเปเบซเบฑเบเบเบปเบเบเบฐเบฅเบดเบเบชเบธเบเบเปเบฒเบเบเบฒเบ Waf เปเบฅเบฐเบเบนเปเบเบปเบเบชเบญเบเบเบตเปเปเบฅเปเบเปเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบ, เปเบเบดเปเบเบเบฐเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเปเบเบฑเปเบเบเบตเป:
Waf: Entering directory `/path/to/workspace/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/path/to/workspace/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (1.799s)
Modules built:
aodv applications bridge
click config-store core
csma csma-layout dsdv
emu energy flow-monitor
internet lte mesh
mobility mpi netanim
network nix-vector-routing ns3tcp
ns3wifi olsr openflow
point-to-point point-to-point-layout propagation
spectrum stats tap-bridge
template test tools
topology-read uan virtual-net-device
visualizer wifi wimax
PASS: TestSuite ns3-wifi-interference
PASS: TestSuite histogram
...
PASS: TestSuite object
PASS: TestSuite random-number-generators
92 of 92 tests passed (92 passed, 0 failed, 0 crashed, 0 valgrind errors)
เบเปเบฒเบชเบฑเปเบเบเบตเปเบกเบฑเบเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบนเปเปเบเปเปเบเบทเปเบญเบเบงเบเบชเบญเบเบขเปเบฒเบเปเบงเบงเบฒเบงเปเบฒเบเบฒเบเปเบเบเบขเบฒเบ ns-3 เบเบทเบเบชเปเบฒเบเบเบถเปเบเบขเปเบฒเบเบเบทเบเบเปเบญเบ. (เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเปเบฒเบชเบฑเปเบเบเบญเบเปเบชเบฑเปเบ "PASS: ... " เบญเบฒเบเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบ, เบเบตเปเปเบกเปเบเปเบฅเบทเปเบญเบเบเบปเบเบเบฐเบเบด. เบชเบดเปเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบกเปเบเบงเปเบฒเปเบชเบฑเปเบเบชเบฐเบซเบผเบธเบเปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบปเบเบฅเบฒเบเบเบฒเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบเบฒเบเบเบปเบเบชเบญเบเบเบฑเบเบซเบกเบปเบเบเปเบฒเบ; เบเปเปเบกเบตเบเบฒเบเบเบปเบเบชเบญเบเบฅเบปเปเบกเปเบซเบฅเบงเบซเบผเบท crashed.) เปเบฅเบฐ Wafเปเบฅเบฐ test.py เบเบฐเบเบฐเปเบฒเบเบเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบเบปเปเบงเปเบเบเบเบฐเบกเบงเบเบเบปเบเบเบตเปเบกเบตเบขเบนเปเบเบญเบเปเบเบทเปเบญเบ.
3.6 เปเบฅเปเบเบชเบฐเบเบฃเบดเบ
เบเบงเบเปเบฎเบปเบฒเบเบปเบเบเบฐเบเบดเปเบฅเปเบเบชเบฐเบเบฃเบดเบเบเบฒเบเปเบเปเบเบฒเบเบเบงเบเบเบธเบก Waf. เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบฅเบฐเบเบปเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเปเบชเบฑเปเบเบเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบเบเบฑเบเปเบเปเบเบทเบเบเบฑเปเบเบขเปเบฒเบเบเบทเบเบเปเบญเบเปเบฅเบฐเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบชเบฒเบกเบฒเบเปเบเปเปเบเปเปเบเปเบงเบฅเบฒเปเบฅเปเบ. เปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบฒเบ, เบเบฝเบเปเบเปเบเปเบฒเปเบเป Waf เบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบต -โฏ-run
. เปเบซเปเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฝเบเปเบเบปเปเบฒ ns-3 เบเบญเบเปเบเบเบเบฒเบเบขเบนเปเบเบปเปเบงเบเบธเบเปเบซเปเบ เบชเบฐโเบเบฒเบโเบเบตโเบเบฒเบงโเปเบฅเบเปเบเบเบเบฒเบเบเบดเบกเบเปเปเปเบเบเบตเป:
$ ./waf --run hello-simulator
Waf เบเปเบฒเบญเบดเบเบเบฐเบเบงเบเปเบเบดเปเบเบงเปเบฒเปเบเบเบเบฒเบเบเบทเบเบชเปเบฒเบเบเบถเปเบเบขเปเบฒเบเบเบทเบเบเปเบญเบเปเบฅเบฐเบเปเปเบชเปเบฒเบเบเปเบฒเบเปเบฒเปเบเบฑเบ. เบเบฒเบเบเบฑเปเบ Waf เบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบฒเบเบเบตเปเบเบฐเบฅเบดเบเบเบปเบเปเบเปเบฎเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป.
Hello Simulator
เบเบปเบกเปเบเบตเบ! เบเบฝเบงเบเบตเปเปเบเบปเปเบฒเปเบเบฑเบเบเบนเปเปเบเป ns-3!
เบเปเบญเบเบเบงเบเปเบฎเบฑเบเปเบเบงเปเบเบเปเบฒเบเปเบญเบเบเปเปเปเบซเบฑเบเบเบปเบ?
เบเปเบฒเปเบเบปเปเบฒเปเบซเบฑเบเบเปเปเบเบงเบฒเบก Wafเบเบตเปเปเบซเปเปเบซเบฑเบเบงเปเบฒเบเบฒเบเบเปเปเบชเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ, เปเบเปเบงเปเบฒเบเปเบฒเบเบเปเปเปเบซเบฑเบเบเบปเบเปเบเปเบฎเบฑเบ "เบชเบฐเบเบฒเบเบเบต Simulator", เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบตเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบงเปเบฒเปเบเบเบฒเบ [Build-with-Waf] เบเปเบฒเบเปเบเปเบเปเบฝเบเปเบซเบกเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบญเบเบเปเบฒเบเปเบเบฑเบ. เบเบตเปเบเบตเบเบตเปเบชเบธเบ, เปเบเปเบเบฒเบเบเบฒเบเบชเบฐเบซเบผเบฑเบเบเบฑเบเปเบเปเปเบ debug. เบเบปเบเบเบฐเบฅเบดเบเบเบญเบเบเบญเบเปเบเบเบเบฑเบเปเบปเบเบเบตเปเปเบเปเปเบเบเบปเบเบชเบญเบเบเบตเปเปเบเปเบญเบปเบเบเบฐเบเบญเบ ns-3 เบเบดเปเบชเบเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบเบเบถเบ เปเบฅเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบดเบกเบเปเปเบเบงเบฒเบกเบเบตเปเบเปเบฒเบซเบเบปเบเปเบญเบเปเบชเป console. เบเบปเบเบเบฐเบฅเบดเบเบเบฒเบเบญเบปเบเบเบฐเบเบญเบเบเบตเปเบเบทเบเบเบดเบเปเบเปเบเบฒเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบกเบทเปเบญเบฅเบฐเบซเบฑเบ optimized เบเบทเบเบฅเบงเบเบฅเบงเบก - เบกเบฑเบเปเบกเปเบ "optimized". เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒเบโเบเปเปโเปเบซเบฑเบโเบเบปเบโเบเบฐโเบฅเบดเบ "Hello Simulatorโ"โ, เปเบซเปโเปเบชเปโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
$ ./waf configure --build-profile=debug --enable-examples --enable-tests
เปเบเบทเปเบญเบเบฑเบเปเบเปเบ Waf เปเบเบทเปเบญเบชเปเบฒเบเบชเบฐเบเบฑเบ debug เบเบญเบเปเบเบเบเบฒเบ ns-3, เปเบเบดเปเบเบฅเบงเบกเบกเบตเบเบปเบงเบขเปเบฒเบ เปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบ. เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบเบงเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบชเบฐเบเบฑเบเบเบตเบเบฑเบเบเบฑเบเบเบธเบเบฑเบเบเบทเบเปเปเปเปเบเบเบเบฒเบเบเบดเบก
$ ./waf
เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบฒเบ เบชเบฐเบเบฒเบเบเบต simulator, เบเปเบฒเบเบเบงเบเปเบซเบฑเบเบเบปเบเปเบเปเบฎเบฑเบเบเบตเปเบเบฒเบเปเบงเป.
3.6.1 เบเบฒเบเปเบเปเบเบฝเบเปเบเบงเบเปเบฒเบชเบฑเปเบ
เปเบเบทเปเบญเบเปเบฒเบ arguments เปเบเบงเบเปเบฒเบชเบฑเปเบเปเบเบซเบฒเปเบเปเบเบก ns-3, เปเบเปเบฎเบนเบเปเบเบเบเปเปเปเบเบเบตเป:
$ ./waf --run <ns3-program> --command-template="%s <args>"
เปเบเบเบเบตเป เบเบฑเบเบเบทเปเบเบญเบเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบเปเบฅเบฐเบเบฒเบเปเบเปเบเบฝเบ. เบเบฒเบเปเบเปเบเบฝเบ -โฏ-command-template
เบเบฒเบ Waf เปเบเบฑเบเบชเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบปเบงเบเบดเบ Waf เปเบเปเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเปเบเบเบเบฒเบ. Waf เบเบงเบเปเบเบดเปเบเบงเปเบฒเบเบฒเบเบเปเปเบชเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเปเบฅเปเบง, เบเปเบฒเบเบปเบเปเบชเบฑเปเบเบเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเปเปเบกเปเปเบเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเปเปเบฅเบฐเบเบปเบเปเบเบเบเบทเปเปเบเบเบเบฒเบเบชเปเบฒเบฅเบฑเบ %s placeholder เปเบเบทเปเบญเปเบเบซเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบ. เบเปเบฒเบเปเบฒเบเบเบปเบเบงเปเบฒ syntax เบเบตเปเบชเบฑเบเบชเบปเบ, เบกเบตเบชเบฐเบเบฑเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบงเปเบฒเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเปเบเบเบเบฒเบ ns-3 เปเบฅเบฐเบเบฒเบเปเบเปเบเบฝเบเบเบญเบเบกเบฑเบเบขเบนเปเปเบเบงเบปเบเบขเบทเบกเบเบฝเบง:
$ ./waf --run '<ns3-program> --arg1=value1 --arg2=value2 ...'
เบเบปเบงเบขเปเบฒเบเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเบเบชเบฐเปเบเบฒเบฐเบญเบตเบเบญเบฑเบเบซเบเบถเปเบเปเบกเปเบเปเบฅเปเบเบเบธเบเบเบปเบเบชเบญเบเปเบเบเปเบฅเบทเบญเบ. เปเบซเปเบชเบปเบกเบกเบธเบเบงเปเบฒเบกเบตเบเบธเบเบเบปเบเบชเบญเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ mytest (เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบเบเปเปเบกเบต). เบเปเบฒเบเปเบเบดเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเปเบชเบฐเบเบดเบ ./test.py เปเบเบทเปเบญเปเบฅเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบณเบเบงเบเปเบถเปเบเปเบเบเบฐเปเบฒเบ, เปเบเบดเปเบเปเบญเบตเปเบเปเบเบฃเปเบเบฃเบกเบเบปเบเบชเบญเบเบเปเบณเป. เบเบฑเบโเบเบปเบโเบชเบญเบโ. เปเบ เบเบฑเบโเบเบปเบโเบชเบญเบโ เปเบเบเบเบปเบเปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบซเบเบถเปเบ:
$ ./waf --run test-runner --command-template="%s --suite=mytest --verbose"
เบเบฒเบเปเบเปเบเบฝเบเบเบฐเบเบทเบเบชเบปเปเบเบเบฑเบเปเบเบเบเบฒเบ เบเบฑเบโเบเบปเบโเบชเบญเบโ. เปเบเบทเปเบญเบเบเบฒเบ mytest เบเปเปเบกเบต, เบเปเปเบเบงเบฒเบกเบชเบฐเปเบเบเบเปเปเบเบดเบเบเบฒเบเบเบฐเบเบทเบเบชเปเบฒเบเบเบทเปเบ. เปเบเบทเปเบญเบเบดเบกเบเบปเบงเปเบฅเบทเบญเบเบเบฑเบเปเบฅเปเบเบเบปเบเบชเบญเบเบเบตเปเบกเบตเบขเบนเป, เปเบซเปเปเบชเป:
$ ./waf --run test-runner --command-template="%s --help"
3.6.2 เบเบฒเบเบเบตเบเบฑเบ
เปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบฒเบ ns-3 เบเบฒเบเปเบเปเบเบปเบเบเบฐเปเบซเบเบเบญเบทเปเบ, เปเบเบฑเปเบ: debugger (เบเบปเบงเบขเปเบฒเบ, gdb) เบซเบผเบทเปเบเบทเปเบญเบเบกเบทเบเบปเบเบชเบญเบเบเบงเบฒเบกเบเบปเบเบเปเบฒ (เบเบปเบงเบขเปเบฒเบ: valgrind), เปเบเปเบฎเบนเบเปเบเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ -โฏ-command-template = "โฆ"
. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเปเบฒเปเบเบตเบเบเบฒเบเปเบ debugger เปเบเป gdb เปเบเบฃเปเบเบฃเบก hello-simulator ns-3 เบเบญเบเบเปเบฒเบเบเบตเปเบกเบตเบเบฒเบเปเบเปเบเบฝเบ:
$ ./waf --run=hello-simulator --command-template="gdb %s --args <args>"
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบทเปเปเบเบฃเปเบเบฃเบก ns-3 เบกเบฒเบเปเบญเบกเบเบฑเบเบเบฒเบเปเบเปเบเบฝเบ -โฏ-run
, เปเบฅเบฐเบเบปเบเบเบฐเปเบซเบเบเบเบฒเบเบเบธเปเบกเบเบญเบ (เบเบตเปเบเบตเป gdb) เปเบเบฑเบ token เบเปเบฒเบญเบดเบเปเบเบเบฒเบเปเบเปเบเบฝเบ -โฏ-command-template
. เบเบฒเบเปเบฅเบทเบญเบ -โฏ-args
informs gdbเบงเปเบฒเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเบเบญเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเปเบเบฑเบเบเบญเบเปเบเปเบเบก "เบเปเปเบฒ". (เบเบฒเบเบชเบฐเบเบฑเบ gdb เบเปเปเปเบเบปเปเบฒเปเบเบเบฒเบเปเบฅเบทเบญเบ -โฏ-args
. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เปเบญเบปเบฒเบเบฒเบเปเบเปเบเบฝเบเปเบเบเบเบฒเบเบญเบญเบเบเบฒเบ -โฏ-command-template
เปเบฅเบฐเปเบเปเบเบธเบเบเปเบฒเบชเบฑเปเบ gdb เปเบเปเบเบฝเบ.) เบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเบฅเบงเบกโเบชเบนเบโเบเบตเปโเปเบฅเบฐโเบญเบฑเบโเบเบตเปโเบเปเบฒเบโเบกเบฒโเปเบเบทเปเบญโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเบปเบโเบชเบญเบโเบเบฒเบโเปเบเปโเบเบฒเบ debugger เปเบเปโ:
$ ./waf --run test-runner --command-template="gdb %s --args --suite=mytest --verbose"
3.6.3 เปเบญเบเบฐเบชเบฒเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ
Waf เบเบงเบเบเบทเบเปเบเบตเบเบเบปเบงเบเบฒเบเบชเบฐเบเบฒเบเบเบตเปเบเบญเบเบกเบฑเบเบขเบนเปเปเบเบดเบเบชเบธเบเบเบญเบเบเบปเปเบเปเบกเป ns-3. เปเบเบเปเบเบตเบเบตเปเบเบฒเบเปเบเบฑเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบตเปเปเบเบฅเปเบเบปเบเบเบฐเบฅเบดเบเบเบฐเบเบทเบเบเบฝเบ. เปเบเปเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบฎเบฑเบเบชเบฒเปเบเบฅเปเปเบซเบผเบปเปเบฒเบเบตเปเบขเบนเปเบเบญเบเบเบปเปเบเปเบกเปเปเบซเบผเปเบ ns-3? เปเบเปเบเบฒเบเปเบเปเบเบฝเบ -โฏ-cwd
:
$ ./waf --cwd=...
เบเปเบฒเบเบญเบฒเบเบเบฐเปเบซเบฑเบเบงเปเบฒเบกเบฑเบเบชเบฐเบเบงเบเบเบงเปเบฒเบเบตเปเบเบฐเปเบญเบปเบฒเปเบเบฅเปเบเบปเบเบเบฐเบฅเบดเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเปเบฒเบ. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบญเปเบญเบกเบเปเปเปเบเบเบตเปเบชเบฒเบกเบฒเบเบเปเบงเบเปเบเป:
$ function waff {
CWD="$PWD"
cd $NS3DIR >/dev/null
./waf --cwd="$CWD" $*
cd - >/dev/null
}
เบเบฒเบเบเบปเบเปเบเปเบเบเบญเบเบเปเบฒเบชเบฑเปเบเบชเบฐเบเบฑเบเบเปเบญเบเบซเบเปเบฒเบเบตเปเบฎเบฑเบเบชเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเปเบฎเบฑเบเบงเบฝเบเปเบเบเบฐเบเบธเบเบฑเบ, เปเบเบซเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบต Wafเปเบฅเบฐโเบซเบผเบฑเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเปเบเบฐโเบเปเบฒโ Waf เปเบเบทเปเบญเบเปเบฝเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเบซเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเปเบฎเบฑเบเบงเบฝเบเปเบเบเบฐเบเบธเบเบฑเบเบเบตเปเบเบฑเบเบเบถเบเปเบงเปเบเปเบญเบเบเบตเปเบเบฐเปเบฅเบตเปเบกเปเบเบเบเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบงเปเบเบดเบเบเบตเบกเบเบฒเบ -โฏ-cwd
เปเบเบทเปเบญเบเบงเบฒเบกเบชเบปเบกเบเบนเบ, เบเบนเปเปเบเปเบชเปเบงเบเปเบซเบเปเบเบฝเบเปเบเปเบเปเบฒเปเบเบตเบเบเบฒเบ Waf เบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบเปเบฅเบฐเบชเปเบฒเบเปเบเบฅเปเบเบปเบเบเบฐเบฅเบดเบเบขเบนเปเบเบตเปเบเบฑเปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com