ns-3 เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒเฅค เจ…เจงเจฟเจ†เจ‡ 3

ns-3 เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒเฅค เจ…เจงเจฟเจ†เจ‡ 3
เจ…เจงเจฟเจ†เจ‡ 1,2

3 เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเจพ
3.1 เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€
3.2 เจชเฉ‚เจฐเจต-เจธเจผเจฐเจคเจพเจ‚
3.2.1 เจธเจฐเฉ‹เจค เจชเฉเจฐเจพเจฒเฉ‡เจ– เจตเจœเฉ‹เจ‚ ns-3 เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ
3.3 เจ—เจฟเฉฑเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ ns-3 เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ
3.3.1 เจฌเฉ‡เจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ ns-3 เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ
3.4 เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ ns-3
3.4.1 build.py เจจเจพเจฒ เจฌเจฟเจฒเจกเจฟเฉฐเจ—
3.4.2 เจฌเฉ‡เจ• เจจเจพเจฒ เจฌเจฟเจฒเจกเจฟเฉฐเจ—
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 เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจธเจนเจฟเจฏเฉ‹เจ—เฉ€ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจชเฉเจฐเจฃเจพเจฒเฉ€ เจตเจœเฉ‹เจ‚ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฆเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ‡เจนเจจเจพเจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเจพเจฒ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ. C++ เจœเจพเจ‚ Python เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจธเจŸเจฎ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฒเจฟเจ–เจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

Ns-3 เจจเฉ‚เฉฐ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเฉฐเจกเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจชเจนเจฟเจฒเจพเจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจŸเจพเจฐเจ—เฉ‡เจŸ เจธเจฟเจธเจŸเจฎ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจฃ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจธเจฟเจงเจพเจ‚เจค เจตเจฟเฉฑเจš, ns-3 เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจคเจฟเจ†เจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจตเจœเฉ‹เจ‚ เจตเฉฐเจกเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจตเฉฐเจกเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจชเจฐ เจ…เฉฑเจœเจ•เฉฑเจฒเฉเจน เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ…เจธเจฒ เจตเจฟเฉฑเจš ns-3 เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจ•เฉ‡ เจ†เจชเจฃเจพ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ‡เจธ เจฒเจˆ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจนเฉ‹เจฃเจพ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจตเฉ€ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจคเจฟเจ†เจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจชเฉˆเจ•เฉ‡เจœ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจ•เฉฐเจฎ เจฒเฉˆเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจฎเฉ‡เจฒเจฟเฉฐเจ— เจฒเจฟเจธเจŸ เจจเจพเจฒ เจธเฉฐเจชเจฐเจ• เจ•เจฐเฉ‹ ns-เจกเจฟเจตเฉˆเจฒเจชเจฐเจธ.

เจ…เฉฑเจ—เฉ‡, เจ…เจธเฉ€เจ‚ ns-3 เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจคเจฟเฉฐเจจ เจคเจฐเฉ€เจ•เฉ‡ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡เฅค เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฎเฉเฉฑเจ– เจธเจพเจˆเจŸ เจคเฉ‹เจ‚ เจ…เจงเจฟเจ•เจพเจฐเจค เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆ. เจฆเฉ‚เจœเจพ เจฌเฉเจจเจฟเจ†เจฆเฉ€ ns-3 เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ•เจพเจชเฉ€เจ†เจ‚ เจฆเฉ€ เจšเฉ‹เจฃ เจ…เจคเฉ‡ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจนเฉˆเฅค เจคเฉ€เจœเจพ ns-3 เจฒเจˆ เจนเฉ‹เจฐ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เจฐเจจ เจฒเจˆ เจตเจพเจงเฉ‚ เจฌเจฟเจฒเจก เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจนเจฐ เจ‡เฉฑเจ• เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจพเจ‚เจ—เฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจŸเฉ‚เจฒ เจฅเฉ‹เฉœเฉ‡ เจตเฉฑเจ–เจฐเฉ‡ เจนเจจเฅค

เจคเจœเจฐเจฌเฉ‡เจ•เจพเจฐ เจฒเฉ€เจจเจ•เจธ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเฉˆเจฐเจพเจจ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจตเจพเจฒเฉ€เจ†เจ‚ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจตเจพเจ‚เจ— ns-3 เจจเฉ‚เฉฐ เจชเฉˆเจ•เฉ‡เจœ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฟเจ‰เจ‚ เจจเจนเฉ€เจ‚ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ? เจนเจพเจฒเจพเจ‚เจ•เจฟ เจตเฉฑเจ–-เจตเฉฑเจ– เจฒเฉ€เจจเจ•เจธ เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจเจพเจ‚ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจกเฉ‡เจฌเฉ€เจ…เจจ) เจฒเจˆ เจฌเจพเจˆเจจเจฐเฉ€ เจชเฉˆเจ•เฉ‡เจœ เจนเจจ, เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ ns-3 เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจ‡เจธ เจฒเจˆ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจ‰เจชเจฒเจฌเจง เจนเฉ‹เจฃเจพ เจธเฉŒเจ–เจพ เจนเฉˆเฅค เจ‡เจธ เจ•เจพเจฐเจจ เจ•เจฐเจ•เฉ‡, เจ…เจธเฉ€เจ‚ เจธเจฐเฉ‹เจค เจคเฉ‹เจ‚ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ 'เจคเฉ‡ เจงเจฟเจ†เจจ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡เฅค

เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฒเจˆ ns-3 เจ…เจงเจฟเจ•เจพเจฐ เจฐเฉ‚เจŸ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจ…เจงเจฟเจ•เจพเจฐเจค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ–เจพเจคเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

3.2 เจชเฉ‚เจฐเจต-เจธเจผเจฐเจคเจพเจ‚

เจ‰เจชเจฒเจฌเจง ns-3 เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ‡ เจชเฉ‚เจฐเฉ‡ เจธเฉˆเฉฑเจŸ เจตเจฟเฉฑเจš เจคเฉ€เจœเฉ€-เจงเจฟเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ 'เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจนเจจ, เจชเจฐ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจนเจฟเฉฑเจธเฉ‡ เจฒเจˆ ns-3 เจจเฉ‚เฉฐ เจ•เจˆ เจ†เจฎ (เจ…เจ•เจธเจฐ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจฅเจพเจชเจค) เจญเจพเจ—เจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจจเจพเจฒ เจฌเจฃเจพเจ‡เจ† เจ…เจคเฉ‡ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ: เจ‡เฉฑเจ• C++ เจ•เฉฐเจชเจพเจˆเจฒเจฐ, เจชเจพเจˆเจฅเจจ, เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจธเฉฐเจชเจพเจฆเจ• (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, vim, emacs เจœ eclipse) เจ…เจคเฉ‡, เจœเฉ‡เจ•เจฐ เจตเจฟเจ•เจพเจธ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ Git เจธเฉฐเจธเจ•เจฐเจฃ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจธเจฟเจธเจŸเจฎเฅค เจฌเจนเฉเจคเฉ‡ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฟเฉฐเจคเจพ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจœเฉ‡เจ•เจฐ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจ•เฉเจ ns-3 เจ‰เฉฑเจจเจค เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจ—เฉเฉฐเจฎ เจนเฉ‹เจฃ เจฆเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจชเจฐ เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจœเฉ‹ เจชเฉ‚เจฐเฉ€ เจธเจฅเจพเจชเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ‡เฉฑเจ• เจตเจฟเจ•เฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจธเฉเจเจพเจ… เจ…เจคเฉ‡ เจœเฉเจ—เจคเจพเจ‚ เจตเจพเจฒเฉ‡ เจชเฉฐเจจเฉ‡ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ…เจœเจฟเจนเจพ เจนเฉ€ เจ‡เฉฑเจ• เจชเฉฐเจจเจพ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจชเฉฐเจจเจพ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจฟเจธเจŸเจฎเจพเจ‚ เจฒเจˆ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจนเจจ, เจ‡เฉฑเจฅเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเจจ: https://www.nsnam.org/wiki/Installation.

เจ‡เจธ เจตเจฟเจ•เฉ€ เจฆเจพ เจชเฉ‚เจฐเจต-เจฒเฉ‹เฉœเจพเจ‚ เจธเฉˆเจ•เจธเจผเจจ เจฆเฉฑเจธเจฆเจพ เจนเฉˆ เจ•เจฟ เจ†เจฎ ns-3 เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจจ เจฒเจˆ เจ•เจฟเจนเฉœเฉ‡ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ€เจจเจ•เจธ เจœเจพเจ‚ เจฎเฉˆเจ•เฉ‹เจธ เจฆเฉ‡ เจ†เจฎ เจซเจฒเฉ‡เจตเจฐเจพเจ‚ 'เจคเฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจตเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ ns-3 เจตเจฟเจ•เฉ€ เจชเฉฐเจจเฉ‡ เจœเจพเจ‚ เจฎเฉเฉฑเจ– เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจฆเฉ€ เจชเฉœเจšเฉ‹เจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เจธ เจฎเฉŒเจ•เฉ‡ เจฆเจพ เจซเจพเจ‡เจฆเจพ เจ‰เจ เจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹: https://www.nsnam.org, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจนเฉˆเฅค ns-3 (ns-3.29) เจฆเฉ‡ เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, ns-3 เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

เจŸเฉ‚เจฒ เจชเฉˆเจ•เฉ‡เจœ/เจตเจฐเจœเจจ

  • C++ เจ•เฉฐเจชเจพเจˆเจฒเจฐ
    clang++ เจœเจพเจ‚ g++ (g++ เจธเฉฐเจธเจ•เจฐเจฃ 4.9 เจœเจพเจ‚ เจ‰เฉฑเจšเจพ)
  • เจชเจพเจˆเจฅเจจ
    python2 เจธเฉฐเจธเจ•เจฐเจฃ >= 2.7.10, เจœเจพเจ‚ python3 เจธเฉฐเจธเจ•เจฐเจฃ >=3.4
  • เจ—เจฟเฉฑเจŸ
    เจ•เฉ‹เจˆ เจตเฉ€ เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃ (GitLab.com 'เจคเฉ‡ ns-3 เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจ เจฒเจˆ)
  • เจŸเจพเจฐ
    เจ•เฉ‹เจˆ เจตเฉ€ เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃ (เจเจจเจเจธ-3 เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เจฐเจจ เจฒเจˆ)
  • bunzip2
    เจ•เฉ‹เจˆ เจตเฉ€ เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃ (NS-3 เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เจฐเจจ เจฒเจˆ)

เจชเจพเจˆเจฅเจจ เจฆเฉ‡ เจกเจฟเจซเจพเจฒเจŸ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ, เจŸเจพเจˆเจช เจ•เจฐเฉ‹ python -V. g++ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ, เจŸเจพเจˆเจช เจ•เจฐเฉ‹ g++ -v. เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจŸเฉ‚เจฒ เจ—เฉเฉฐเจฎ เจนเฉˆ เจœเจพเจ‚ เจฌเจนเฉเจค เจชเฉเจฐเจพเจฃเจพ เจนเฉˆ, เจคเจพเจ‚ เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ ns-3 เจตเจฟเจ•เฉ€ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจ—เจพเจˆเจก เจตเฉ‡เจ–เฉ‹เฅค

เจนเฉเจฃ เจคเฉ‹เจ‚, เจ…เจธเฉ€เจ‚ เจฎเฉฐเจจเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจชเจพเจ เจ• เจฒเฉ€เจจเจ•เจธ, เจฎเฉˆเจ•เฉ‹เจธ, เจœเจพเจ‚ เจฒเฉ€เจจเจ•เจธ เจˆเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจšเจฒเจพ เจฐเจฟเจนเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‰เจชเจฐเฉ‹เจ•เจค เจŸเฉ‚เจฒ เจนเจจเฅค

3.2.1 เจธเจฐเฉ‹เจค เจชเฉเจฐเจพเจฒเฉ‡เจ– เจตเจœเฉ‹เจ‚ ns-3 เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ

เจ‡เจน เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆ เจ•เจพเจฐเจตเจพเจˆ เจฆเจพ เจ•เฉ‹เจฐเจธ เจนเฉˆ เจœเฉ‹ ns-3 เจฆเฉ‡ เจจเจตเฉ€เจจเจคเจฎ เจฐเฉ€เจฒเฉ€เจœเจผ เจ…เจคเฉ‡ เจชเฉˆเจ•เฉ‡เจœ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจชเฉเจฐเจฏเฉ‹เจ— เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค ns-3 เจฐเฉ€เจฒเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจ•เฉเจšเจฟเจค เจธเจฐเฉ‹เจค เจชเฉเจฐเจพเจฒเฉ‡เจ–เจพเจ‚ เจตเจœเฉ‹เจ‚ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจธเจจเฉ‚เฉฐ เจ•เจˆ เจตเจพเจฐ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจŸเจพเจฐเจฌเจพเจฒ. เจŸเจพเจฐเจฌเจพเจฒ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจ†เจฐเจ•เจพเจˆเจต เจซเจพเจฐเจฎเฉˆเจŸ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ•เจˆ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจฟเจ†เจ‚ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ†เจฐเจ•เจพเจˆเจต เจจเฉ‚เฉฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเฉฐเจ•เฉเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจฆเฉเจ†เจฐเจพ ns-3 เจฌเฉ‚เจŸ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจŸเจพเจฐเจฌเจพเจฒ เจธเจงเจพเจฐเจจ เจนเฉˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจฐเฉ€เจฒเฉ€เจœเจผ เจšเฉเจฃเจจ, เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจšเจฒเฉ‹ เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจธเฉ€เจ‚, เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡, เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš ns-3 เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจœเจฟเจธ เจจเฉ‚เฉฐ เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ เจตเจฐเจ•เจธเจชเฉ‡เจธ. เจคเฉเจธเฉ€เจ‚ เจฒเฉ€เจจเจ•เจธ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจนเฉ‡เจ เจพเจ‚ เจฆเจฐเจœ เจ•เจฐเจ•เฉ‡ เจฐเฉ€เจฒเฉ€เจœเจผ เจฆเฉ€ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจ•เจพเจชเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ (เจ‰เจšเจฟเจค เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉฐเจฌเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจ•เฉ‡, เจฌเฉ‡เจธเจผเจ•)

$ 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 เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ

ns-3 เจ•เฉ‹เจก GitLab.com 'เจคเฉ‡ Git เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจนเฉˆ https://gitlab.com/nsnam/. เจธเจฎเฉ‚เจน nsnam เจ‡เฉฑเจ• เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉเจ†เจฐเจพ เจตเจฐเจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

Git เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจ†เจธเจพเจจ เจคเจฐเฉ€เจ•เจพ เจตเจพเจคเจพเจตเจฐเจฃ เจจเฉ‚เฉฐ เจซเฉ‹เจฐเจ• เจœเจพเจ‚ เจ•เจฒเฉ‹เจจ เจ•เจฐเจจเจพ เจนเฉˆ ns-3-เจเจฒเจฟเจจเฉ‹เจจ. เจ‡เจน เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจนเฉˆ เจœเฉ‹ เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจง เจตเจฐเจคเฉ‡ เจœเจพเจฃ เจตเจพเจฒเฉ‡ ns-3 เจ‰เจช-เจธเจฟเจธเจŸเจฎเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เจกเจฟเฉฐเจ— เจ…เจคเฉ‡ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ Git เจฒเจˆ เจจเจตเฉ‡เจ‚ เจนเฉ‹, เจคเจพเจ‚ เจธเจผเจฌเจฆ "เจ•เจพเจ‚เจŸเจพ" เจ…เจคเฉ‡ "เจ•เจฒเฉ‹เจจ" เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจ…เจฃเจœเจพเจฃ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ; เจœเฉ‡เจ•เจฐ เจ…เจœเจฟเจนเจพ เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ GitLab.com 'เจคเฉ‡ เจธเจฅเจฟเจค เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เจฒเฉ‹เจจ เจ•เจฐเฉ‹ (เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจ•เจพเจชเฉ€ เจฌเจฃเจพเจ“):

$ cd 
$ mkdir workspace 
$ cd workspace 
$ git clone https://gitlab.com/nsnam/ns-3-allinone.git 
$ cd ns-3-allinone 

เจ‡เจธ เจชเฉœเจพเจ… 'เจคเฉ‡, เจคเฉเจนเจพเจกเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฆเจพ เจฆเฉเจฐเจฟเจธเจผ ns-3-เจเจฒเจฟเจจเฉ‹เจจ เจ‰เฉฑเจชเจฐ เจตเจฐเจฃเจฟเจค เจฐเฉ€เจฒเฉ€เจœเจผ เจ†เจฐเจ•เจพเจˆเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจฅเฉ‹เฉœเฉเจนเจพ เจตเฉฑเจ–เจฐเจพ เจนเฉˆเฅค เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

$ ls
build.py constants.py download.py README util.py

เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจนเฉˆ download.py, เจœเฉ‹ เจ•เจฟ ns-3 เจ…เจคเฉ‡ เจจเจพเจฒ เจตเจพเจฒเฉ‡ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจตเฉ€ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเฉ‡เจ—เจพเฅค เจ‡เฉฑเจฅเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจตเจฟเจ•เจฒเจช เจนเฉˆ: เจœเจพเจ‚ เจคเจพเจ‚ เจจเจตเฉ€เจจเจคเจฎ ns-3 เจตเจฟเจ•เจพเจธ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹:

$ python download.py

เจœเจพเจ‚ เจซเจฒเฉˆเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ ns-3 เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจคเจฐเจœเฉ€เจน เจฆเจฟเจ“ -n เจฐเจฟเจฒเฉ€เจœเจผ เจจเฉฐเจฌเจฐ เจฆเจฐเจธเจพเจ‰เจฃ เจฒเจˆ:

$ python download.py -n ns-3.29

เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจ‡เจธ เจ•เจฆเจฎ เจฆเฉ‡ เจฌเจพเจ…เจฆ ns-3-เจเจฒเจฟเจจเฉ‹เจจ เจตเจพเจงเฉ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจฃเจ—เฉ€เจ†เจ‚ ns-3, เจธเฉ‡เจ•, pybindgen ะธ เจจเฉ‡เจคเจจเฉ€เจฎ.

เจŸเจฟเฉฑเจชเจฃเฉ€
เจธเจพเจซเจผ Ubuntu16.04 เจตเจพเจฒเฉ€ เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡, เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจธ เจฒเจˆ เจ•เจฎเจพเจ‚เจก เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€: $ sudo python3 download.py -n ns-3.29 (เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ…เจจเฉเจตเจพเจฆเจ• เจฆเฉ‡ เจจเฉ‹เจŸ)เฅค

3.3.1 เจฌเฉ‡เจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ ns-3 เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจ‰เจชเจฐเฉ‹เจ•เจค เจฆเฉ‹ เจตเจฟเจงเฉ€เจ†เจ‚ (เจธเจฐเฉ‹เจค เจ†เจฐเจ•เจพเจˆเจต เจœเจพเจ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ ns-3-เจเจฒเจฟเจจเฉ‹เจจ เจ—เจฟเฉฑเจŸ เจฐเจพเจนเฉ€เจ‚) เจฎเจฒเจŸเฉ€เจชเจฒ เจเจก-เจ†เจจเจพเจ‚ เจจเจพเจฒ เจธเจฐเจฒ NS-3 เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเจจ (pybindgen เจชเจพเจˆเจฅเจจ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ…เจคเฉ‡ เจจเฉ‡เจคเจจเฉ€เจฎ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจเจจเฉ€เจฎเฉ‡เจธเจผเจจ เจฒเจˆ). ns-3-allinone เจตเจฟเฉฑเจš เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจคเฉ€เจœเฉ€ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจธเฉ‡เจ•.

เจชเจ•เจพเจ‰เจฃเจพ เจฎเจฒเจŸเฉ€เจชเจฒ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจฆเฉ‡ เจคเจพเจฒเจฎเฉ‡เจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉฐเจฆ เจนเฉˆ, ns-3 เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจˆ เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจชเจ•เจพเจ‰เจฃเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ ns-3 เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจจเจพเจฒ เจนเฉ€ ns-3 เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจฆเฉ‡ เจ…เจงเจพเจฐ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ‡ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจตเจพเจคเจพเจตเจฐเจฃเฅค เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ, CradleNetwork เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจชเฉฐเจ˜เฉ‚เฉœเจพ, เจจเจตเฉ€เจ‚ เจชเจพเจˆเจฅเจจ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจ…เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– ns-3 โ€œเจเจชเจธโ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพเฅค

เจŸเจฟเฉฑเจชเจฃเฉ€
CradleNetwork Simulation Cradle เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ…เจธเจฒ TCP/IP เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจŸเฉˆเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจคเฉเจนเจพเจกเฉ€ ns-3 เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจ‰เฉฑเจจเจค เจœเจพเจ‚ เจตเจพเจงเฉ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจนเจจ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจฎเจพเจฐเจ— เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจจเจตเฉ€เจจเจคเจฎ ns-3 เจฐเฉ€เจฒเฉ€เจœเจผเจพเจ‚ เจตเจฟเฉฑเจš เจชเจ•เจพเจ‰เจฃเจพ เจจเฉ‚เฉฐ เจŸเจพเจฐ เจฐเฉ€เจฒเฉ€เจœเจผ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค เจฐเฉ€เจฒเฉ€เจœเจผ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฐเฉ€เจฒเฉ€เจœเจผ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจน เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจตเจฐเจœเจจ เจชเจ•เจพเจ‰เจฃเจพ, เจœเฉ‹ เจ•เจฟ เจฐเฉ€เจฒเฉ€เจœเจผ ns-3.29 เจจเจพเจฒ เจตเฉฐเจกเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจจเฉ‚เฉฐ ns-3 เจœเจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฆเฉ‡ เจ‰เจธ เจฐเฉ€เจฒเฉ€เจœเจผ เจฒเจˆ เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจฌเจพเจ…เจฆ เจฆเฉ‡ เจฐเฉ€เจฒเฉ€เจœเจผเจพเจ‚ เจฒเจˆ เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจจเจนเฉ€เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ (เจœเฉ‡ เจชเฉˆเจ•เฉ‡เจœ เจตเฉ‡เจฐเจตเจพ เจซเจพเจˆเจฒ bakeconf.xml เจ…เฉฑเจชเจกเฉ‡เจŸ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ†)เฅค

เจคเฉเจธเฉ€เจ‚ เจจเจตเฉ€เจจเจคเจฎ เจ•เจพเจชเฉ€ เจตเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจธเฉ‡เจ•เจ†เจชเจฃเฉ‡ เจฒเฉ€เจจเจ•เจธ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจฆเจพเจ–เจฒ เจ•เจฐเจ•เฉ‡ (เจ‡เจน เจฎเฉฐเจจ เจ•เฉ‡ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ 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.

เจ•เจฎเจพเจ‚เจก เจชเฉ‚เจฐเจพ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เจฒเฉ‹เจจ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจจเจพเจฎ เจฆเฉ€ เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจธเฉ‡เจ•, เจœเจฟเจธ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ:

$ cd bake
$ ls
bake bakeconf.xml bake.py doc examples generate-binary.py test TODO

เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ•เจˆ เจชเจพเจˆเจฅเจจ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฒเฉ‹เจก เจ•เฉ€เจคเฉ€เจ†เจ‚ เจนเจจ, เจ‡เฉฑเจ• เจชเจพเจˆเจฅเจจ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเจพเจฎเจ• เจธเฉ‡เจ• เจ…เจคเฉ‡ เจ‡เฉฑเจ• XML เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจ‡เจฒเฅค เจ…เจ—เจฒเจพ เจ•เจฆเจฎ เจนเฉˆ เจ‡เจนเจจเจพเจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€ เจชเจธเฉฐเจฆ เจฆเฉ‡ ns-3 เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฃเจพเฅค เจ•เจˆ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจŸเฉ€เจšเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเจจ:

  1. ns-3.29: เจฐเฉ€เจฒเฉ€เจœเจผ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐเฉ€ เจฎเฉ‹เจกเฉ€เจŠเจฒ; เจ‡เจน เจŸเจพเจฐเจฌเจพเจฒ เจตเจฟเฉฑเจš เจฐเฉ€เจฒเฉ€เจœเจผ เจฆเฉ‡ เจธเจฎเจพเจจ เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‡เจ—เจพ;

  2. ns-3-dev: เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจฎเฉ‹เจกเฉ€เจŠเจฒ, เจชเจฐ เจกเจฟเจตเฉˆเจฒเจชเจฎเฉˆเจ‚เจŸ เจŸเฉเจฐเฉ€ เจคเฉ‹เจ‚ เจ•เฉ‹เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ;

  3. ns-allinone-3.29: เจ‡เฉฑเจ• เจฎเฉ‹เจกเฉ€เจŠเจฒ เจœเจฟเจธ เจตเจฟเฉฑเจš เจนเฉ‹เจฐ เจตเจพเจงเฉ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ•เจฒเจฟเจ• เจฐเจพเจŠเจŸเจฟเฉฐเจ— เจ…เจคเฉ‡ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจ•เฉเจฐเฉˆเจกเจฒ, ns-3 เจฒเจˆ เจ“เจชเจจเจซเจฒเฉ‹เฅค

  4. ns-3-เจเจฒเจฟเจจเฉ‹เจจ: เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ‡ เจฐเฉ€เจฒเฉ€เจœเจผ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ‡ เจธเจฎเจพเจจ เจ‡เฉฑเจ• เจตเจฟเจš เจธเจพเจฐเฉ‡, เจชเจฐ เจตเจฟเจ•เจพเจธ เจ•เฉ‹เจก เจฒเจˆ.

เจŸเจฟเฉฑเจชเจฃเฉ€
เจ•เจฒเจฟเจ• เจ•เจฐเฉ‹ โ€” เจฐเจพเจŠเจŸเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจฎเจพเจกเจฟเจŠเจฒเจฐ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐเฅค

เจ“เจชเจจเจซเจฒเฉ‹ เจฐเจพเจŠเจŸเจฐเจพเจ‚ เจ…เจคเฉ‡ เจธเจตเจฟเฉฑเจšเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจกเฉ‡เจŸเจพ เจจเฉˆเจŸเจตเจฐเจ• เจ‰เฉฑเจคเฉ‡ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจ•เฉ€เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจนเฉˆ, เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ-เจชเฉเจฐเจญเจพเจธเจผเจฟเจค เจจเฉˆเจŸเจตเจฐเจ• เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพเฅค

เจฎเฉŒเจœเฉ‚เจฆเจพ เจตเจฟเจ•เจพเจธ เจธเจจเฉˆเจชเจธเจผเจพเจŸ (เจ—เฉˆเจฐ-เจฐเจฟเจฒเฉ€เจœเจผ) ns-3 เจ‡เฉฑเจฅเฉ‡ เจฒเฉฑเจญเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ:https://gitlab.com/nsnam/ns-3-dev.git.

เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ‡เจนเจจเจพเจ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เจธเจพเจฐ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจชเจฐ เจ‰เจน เจตเจฟเจ•เจพเจธ เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš เจนเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจœเจพเจฐเฉ€ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจ•เฉ‹เจก เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจจเจตเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ…เจงเจฟเจ•เจพเจฐเจค เจฐเฉ€เจฒเฉ€เจœเจผ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเฉ‹เฅค

เจคเฉเจธเฉ€เจ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจจเฉ‚เฉฐ เจฌเฉเจฐเจพเจŠเจœเจผ เจ•เจฐเจ•เฉ‡, เจœเจพเจ‚ ns-3 เจฐเฉ€เจฒเฉ€เจœเจผ เจตเฉˆเฉฑเจฌ เจชเฉ‡เจœ 'เจคเฉ‡ เจœเจพ เจ•เฉ‡ เจ•เฉ‹เจก เจฆเจพ เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃ เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹:https://www.nsnam.org/releases/ เจ…เจคเฉ‡ เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃ เจฒเจฟเฉฐเจ• 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเจจเจพเฅค เจ‡เจธ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ ns-3.29 เจฆเฉ‡ เจจเจพเจฒ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจพเจ‚เจ—เฉ‡เฅค

เจนเฉเจฃ, เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ ns-3 เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจŸเฉ‚เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡ เจชเจ•เจพเจ‰เจฃเจพ. เจ†เจ“ เจ•เฉฐเจฎ เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจผเจฌเจฆ เจ•เจนเฉ€เจ เจชเจ•เจพเจ‰เจฃเจพ.

เจฌเฉ‡เจ• เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจœ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เจฐเจ•เฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจธเจฐเฉ‹เจค เจ…เจคเฉ‡ เจฌเจฟเจฒเจก เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพเฅค เจชเจ•เจพเจ‰เจฃเจพ เจฌเจพเจˆเจจเจฐเฉ€ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉ‡ เจ•เฉ‡ เจšเจฒเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจšเจฒเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจชเจ•เจพเจ‰เจฃเจพ เจ‰เจธ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‡เจธเจจเฉ‚เฉฐ เจกเจพเจ‰เจจเจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจ‡เจธ เจตเจฟเฉฑเจš เจฎเจพเจฐเจ— เจœเฉ‹เฉœเจจ เจฆเฉ€ เจธเจฒเจพเจน เจฆเจฟเฉฑเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจธเฉ‡เจ• เจคเฉเจนเจพเจกเฉ‡ เจฎเจพเจฐเจ— (PATH เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ) เจฒเจˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ…เจจเฉเจธเจพเจฐ (เจฒเฉ€เจจเจ•เจธ เจฌเฉˆเจธเจผ เจธเจผเฉˆเฉฑเจฒ เจฒเจˆ เจ‰เจฆเจพเจนเจฐเจจ)เฅค "เจฌเฉ‡เจ•" เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ 'เจคเฉ‡ เจœเจพเจ“ เจ…เจคเฉ‡ เจซเจฟเจฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹:

$ export BAKE_HOME=`pwd` 
$ export PATH=$PATH:$BAKE_HOME:$BAKE_HOME/build/bin 
$ export PYTHONPATH=$PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/lib

เจ‡เจน เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฐเฉฑเจ–เฉ‡เจ—เจพ bake.py เจธเจผเฉˆเฉฑเจฒ เจฎเจพเจฐเจ— 'เจคเฉ‡ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจฆเฉเจ†เจฐเจพ เจฌเจฃเจพเจ เจ—เจ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจ…เจคเฉ‡ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเฉ‡เจตเฉ‡เจ—เจพ เจธเฉ‡เจ•. เจ•เฉเจ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ‡ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจธเฉ‡เจ•, เจ‰เฉฑเจชเจฐ เจฆเฉฑเจธเฉ‡ PATH เจ…เจคเฉ‡ PYTHONPATH เจธเฉˆเจŸเจฟเฉฐเจ— เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ ns-3-allinone (เจตเจพเจงเฉ‚ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ) เจฆเฉ€ เจ‡เฉฑเจ• เจชเฉ‚เจฐเฉ€ เจฌเจฟเจฒเจก เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ†เจชเจฃเฉ€ เจตเจฐเจ•เจฟเฉฐเจ— เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ 'เจคเฉ‡ เจœเจพเจ“ เจ…เจคเฉ‡ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจนเฉ‡เจ เจพเจ‚ เจฆเจฐเจœ เจ•เจฐเฉ‹:

$ ./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 เจ…เจคเฉ‡ เจฌเจพเจœเจผเจพเจฐ เจ‡เจธ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเจจ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจธเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจก เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจเฅค เจ‡เจธ เจฎเฉŒเจ•เฉ‡ 'เจคเฉ‡, เจ—เฉเฉฐเจฎ เจนเฉ‹เจ เจŸเฉ‚เจฒ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจ†เจฎ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹ (เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚) เจœเจพเจ‚ เจฎเจฆเจฆ เจฒเจˆ เจ†เจชเจฃเฉ‡ เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเจธเจผเจพเจธเจ• เจจเจพเจฒ เจธเฉฐเจชเจฐเจ• เจ•เจฐเฉ‹เฅค

เจ…เฉฑเจ—เฉ‡, เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹:

$ ./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 เจ‡เฉฑเจ• เจฌเจฟเจฒเจก เจŸเฉ‚เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ เจตเจพเจซเจนเฉ‡เจ เจพเจ‚ เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‡เจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจ—เฉ‡ เจตเจพเจซ, เจชเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจœเจพเจ‚ เจนเฉ‹เจฐ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจฌเจฟเจฒเจกเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐเจจ เจฒเจˆ เจ•เฉเจ เจ†เจธเจพเจจ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจนเจจเฅค เจ‡เจธ เจฒเจˆ เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡, เจ‡เจธ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจชเฉœเฉเจนเฉ‹ เจตเจพเจซ'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ‹ build.py เจ…เจคเฉ‡ เจจเจพเจฒ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจธเฉ‡เจ•.

3.4.1 build.py เจจเจพเจฒ เจฌเจฟเจฒเจกเจฟเฉฐเจ—

เจธเจพเจตเจงเจพเจจ เจ‡เจน เจฌเจฟเจฒเจก เจธเจŸเฉˆเจช เจธเจฟเจฐเจซ เจธเจฐเฉ‹เจค เจชเฉเจฐเจพเจฒเฉ‡เจ– เจธเฉฐเจธเจ•เจฐเจฃ เจคเฉ‹เจ‚ เจ‰เจชเจฒเจฌเจง เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ‰เฉฑเจชเจฐ เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ; เจ…เจคเฉ‡ เจ—เจฟเฉฑเจŸ เจœเจพเจ‚ เจฌเฉ‡เจ• เจฆเฉเจ†เจฐเจพ เจกเจพเจŠเจจเจฒเฉ‹เจก เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค

เจ‡เฉฑเจ• เจฐเฉ€เจฒเจฟเจœเจผ เจ†เจฐเจ•เจพเจˆเจต เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจŸเจพเจฐเจฌเจพเจฒ, เจตเจฟเจš ns-3-เจเจฒเจฟเจจเฉ‹เจจ เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจธเฉŒเจ–เจพ เจธเจ•เฉเจฐเจฟเจชเจŸ เจนเฉˆ เจœเฉ‹ เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจเจพ เจ†เจธเจพเจจ เจฌเจฃเจพ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจ‡เจธเจจเฉ‚เฉฐ build.py เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจฒเจพเจญเจฆเจพเจ‡เจ• เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจธเจฅเจพเจชเจค เจ•เจฐเฉ‡เจ—เจพเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ ns-3 เจจเจพเจฒ เจตเจงเฉ‡เจฐเฉ‡ เจ‰เฉฑเจจเจค เจธเฉˆเจŸเจ…เจช เจ…เจคเฉ‡ เจ•เฉฐเจฎ เจตเจฟเฉฑเจš เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ ns-3 เจฆเฉ‡ เจ†เจชเจฃเฉ‡ เจฌเจฟเจฒเจก เจธเจฟเจธเจŸเจฎ, Waf เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจœเฉ‹ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจธ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจตเจฟเฉฑเจš เจชเฉ‡เจธเจผ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจตเจฐเจค เจ•เฉ‡ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจนเฉˆ เจŸเจพเจฐเจฌเจพเจฒ, เจซเจฟเจฐ เจคเฉเจนเจพเจกเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš ~/เจตเจฐเจ•เจธเจชเฉ‡เจธ เจ‡เฉฑเจ• เจจเจพเจฎ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ•เฉเจ เจ…เจœเจฟเจนเจพ เจนเฉˆ ns-allinone-3.29. เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจฆเจฐเจœ เจ•เจฐเฉ‹:

$ ./build.py --enable-examples --enable-tests

เจœเจฆเฉ‹เจ‚ เจฌเฉเจฒเจพเจ‡เจ† เจ—เจฟเจ† build.py เจ…เจธเฉ€เจ‚ เจ‡เจธ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ ns-3 เจตเจฟเฉฑเจš เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจฌเจฃเฉ€เจ†เจ‚ เจนเจจเฅค เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจธเจพเจฐเฉ‡ เจ‰เจชเจฒเจฌเจง เจฎเฉ‹เจกเฉ€เจŠเจฒ เจตเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจซเจฟเจฐ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจฌเจฟเจจเจพเจ‚ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸเจพเจ‚ เจฆเฉ‡ ns-3 เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเจพเจ‚ เจ‰เจนเจจเจพเจ‚ เจฎเฉˆเจกเจฟเจŠเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจพเจนเจฐ เจ•เฉฑเจข เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉฐเจฎ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจจเจนเฉ€เจ‚ เจนเจจเฅค

เจคเฉเจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจธเฉเจจเฉ‡เจนเฉ‡ เจตเฉ‡เจ–เฉ‹เจ—เฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจฆเฉเจ†เจฐเจพ เจฒเฉ‹เจก เจ•เฉ€เจคเฉ‡ เจ—เจ เจตเฉฑเจ–-เจตเฉฑเจ– เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจชเจนเจฟเจฒเจพเจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจเจจเฉ€เจฎเฉ‡เจŸเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‡เจ—เฉ€ เจจเฉ‡เจคเจจเฉ€เจฎ, เจซเจฟเจฐ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจœเจจเจฐเฉ‡เจŸเจฐ 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 เจฎเฉ‹เจกเฉ€เจŠเจฒ เจœเฉ‹ เจ•เจฟ เจฌเจพเจนเจฐเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจ เจ—เจ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ, เจœเจพเจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจธเฉฐเจฐเจšเจจเจพ เจฒเจˆ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจ‡เจน เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจ…เจธเฉˆเจ‚เจฌเจฒ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ† เจนเฉˆ เจœเจพเจ‚ เจ…เจธเฉˆเจ‚เจฌเจฒ เจ•เฉ€เจคเฉ‡ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจ—เฉ‡เฅค

3.4.2 เจฌเฉ‡เจ• เจจเจพเจฒ เจฌเจฟเจฒเจกเจฟเฉฐเจ—

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ‰เฉฑเจชเจฐ เจฌเฉ‡เจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ 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 เจธเฉฐเจฆ เจฆเฉเจ†เจฐเจพ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจธเฉ‡เจ• เจธเจพเจฐเฉ‡ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ 'เจคเฉ‡ เจจเจนเฉ€เจ‚เฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เจพ:

>> 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 เจธเจฟเจฐเจซ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ…เฉฑเจชเจกเฉ‡เจŸ เจชเจพเจˆเจฅเจจ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฒเจˆ เจ‡เจธเจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ (เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‰เจฆเฉ‹เจ‚ เจคเฉฑเจ• เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‰เจน ns-3 เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฌเจฆเจฒเจฆเฉ‡), เจ‡เจธเจฒเจˆ เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจนเฉเจฃ เจฒเจˆ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฐเฉ‚เจช เจจเจพเจฒ เจ…เจฃเจกเจฟเฉฑเจ  เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจ‡เจน เจ…เจธเจซเจฒ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ—เฉเฉฐเจฎ เจจเจฟเจฐเจญเจฐเจคเจพ เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจธเฉฐเจ•เฉ‡เจค เจฆเฉ‡เจตเฉ‡เจ—เฉ€:

$ ./bake.py show

เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹, เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

3.4.3 Waf เจจเจพเจฒ เจฌเจฃเจพเจ“

เจ‡เจธ เจฌเจฟเฉฐเจฆเฉ‚ เจคเฉฑเจ•, ns-3 เจฌเจฃเจพเจ‰เจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจœเจพเจ‚ เจคเจพเจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆ build.py, เจœเจพเจ‚ เจŸเฉ‚เจฒ เจธเฉ‡เจ•. เจ‡เจน เจŸเฉ‚เจฒ ns-3 เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจธเจพเจ‚เจญ-เจธเฉฐเจญเจพเจฒ เจฒเจˆ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเจจเฅค เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‰เจน เจฌเจฟเจฒเจก เจŸเฉ‚เจฒ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ เจตเจพเจซ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ ns-3 เจคเฉ‹เจ‚เฅค เจตเจพเจซ ns-3 เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจจเจพเจฒ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจตเจฐเจคเฉ‹เจ‚เจ•เจพเจฐ nsโ€‘3 เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ…เจธเฉˆเจ‚เจฌเจฒ เจ•เจฐเจจ เจฒเจˆ เจธเจฟเฉฑเจงเฉ‡ เจตเจฐเจคเฉ‹เจ‚ เจตเฉฑเจฒ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ…เฉฑเจ—เฉ‡ เจตเจงเจฆเฉ‡ เจนเจจ เจตเจพเจซ. เจ‡เจธ เจฒเจˆ, เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃ เจฒเจˆ, เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ ns-3 เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ 'เจคเฉ‡ เจœเจพเจ“ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฌเจฃเจพเจˆ เจธเฉ€เฅค

เจ‡เจธ เจธเจฎเฉ‡เจ‚ เจ‡เจธเจฆเฉ€ เจธเจ–เจคเฉ€ เจจเจพเจฒ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจ‡เจน เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจชเจฟเฉฑเจ›เฉ‡ เจนเจŸเจฃเจพ เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจ•เจฐเจจ เจฆเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฃเจพ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจธเฉฐเจญเจต เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจธเฉฐเจฐเจšเจจเจพ เจคเจฌเจฆเฉ€เจฒเฉ€ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‰เจน เจนเฉˆ เจ•เฉ‹เจก เจฆเจพ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจธเฉฐเจธเจ•เจฐเจฃ เจฌเจฃเจพเจ‰เจฃเจพเฅค เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจกเฉ€เจฌเฉฑเจ— เจธเฉฐเจธเจ•เจฐเจฃ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ†เจชเจฃเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ†เจ‰ เจ‡เฉฑเจ• เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจฌเจฟเจฒเจก เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ€เจเฅค Waf เจจเฉ‚เฉฐ เจธเจฎเจเจพเจ‰เจฃ เจฒเจˆ เจ•เจฟ เจ‡เจธเจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจฌเจฟเจฒเจก เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸ เจธเจผเจพเจฎเจฒ เจนเจจ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€:

$ ./waf clean 
$ ./waf configure --build-profile=optimized --enable-examples --enable-tests

เจ‡เจน เจฒเจพเจ‚เจš เจ•เจฐเฉ‡เจ—เจพ เจตเจพเจซ เจธเจฅเจพเจจเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฆเฉ‡ เจฌเจพเจนเจฐ (เจคเฉเจนเจพเจกเฉ€ เจธเจนเฉ‚เจฒเจค เจฒเจˆ)เฅค เจชเจนเจฟเจฒเฉ€ เจ•เจฎเจพเจ‚เจก เจชเจฟเจ›เจฒเฉ€ เจฌเจฟเจฒเจก เจคเฉ‹เจ‚ เจธเจพเจซเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจ‡เจน เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจ–เจผเจคเฉ€ เจจเจพเจฒ เจœเจผเจฐเฉ‚เจฐเฉ€ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ, เจชเจฐ เจ‡เจน เจตเจงเฉ€เจ† เจ…เจญเจฟเจ†เจธ เจนเฉˆ (เจนเฉ‡เจ เจพเจ‚ เจฌเจฟเจฒเจก เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒเจพเจ‚ เจตเฉ€ เจฆเฉ‡เจ–เฉ‹); เจ‡เจน เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจชเจนเจฟเจฒเจพเจ‚ เจฌเจฃเจพเจˆเจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจ†เจฌเจœเฉˆเจ•เจŸ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ เจฌเจฃเจพเจ‰/. เจœเจฆเฉ‹เจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฌเจฟเจฒเจก เจธเจฟเจธเจŸเจฎ เจตเฉฑเจ–-เจตเฉฑเจ– เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจธเจฎเจพเจจ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

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 เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจคเจพเจ‚ เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค เจ‡เจน เจตเฉ€ เจฏเจพเจฆ เจฐเฉฑเจ–เฉ‹ เจ•เจฟ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆ เจธเฉ‚เจกเฉ‹ เจ•เฉเจ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฒเจˆ suid เจฌเจฟเฉฑเจŸ เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฒเจˆ "เจฐเจจเจŸเจพเจˆเจฎ 'เจคเฉ‡ เจ—เจฐเฉเฉฑเจช ID เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹"เฅค เจ‡เจน เจกเจฟเจซเฉŒเจฒเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจฎเจฐเฉฑเจฅ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ เจ‡เจน เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ "เจธเจฎเจฐเฉฑเจฅ เจจเจนเฉ€เจ‚" เจตเจœเฉ‹เจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจธเจฎเจฐเจฅเจฟเจค เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจตเจฐเจคเฉ‹เจ‚ เจตเจพเจซ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฆเฉ‡ เจจเจพเจฒ --check-config.

เจšเจฒเฉ‹ เจนเฉเจฃ เจตเจพเจชเจธ เจšเฉฑเจฒเฉ€เจ เจ…เจคเฉ‡ เจกเฉ€เจฌเฉฑเจ— เจฌเจฟเจฒเจก เจตเจฟเฉฑเจš เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸเจพเจ‚ เจตเจพเจฒเฉ‡ เจตเจพเจชเจฟเจธ เจธเจตเจฟเจš เจ•เจฐเฉ€เจเฅค

$ ./waf clean 
$ ./waf configure --build-profile=debug --enable-examples --enable-tests

เจฌเจฟเจฒเจก เจธเจฟเจธเจŸเจฎ เจนเฉเจฃ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจนเฉ‹ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจŸเจพเจˆเจช เจ•เจฐเจ•เฉ‡ 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, เจชเจฐ เจนเฉ‹เจฐ เจตเจฟเจ•เจฒเจช เจตเจพเจซ เจ‡เจน เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฎเจฐเจฅเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เจน เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพ:

$ ./build.py --disable-python

เจชเฉเจฐเจคเฉ€เจ•เจฐเจฎ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ:

build.py: error: no such option: --disable-python

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจตเจฟเจธเจผเฉ‡เจธเจผ เจ†เจชเจฐเฉ‡เจŸเจฐ - - เจฆเฉเจ†เจฐเจพ เจตเจพเจงเฉ‚ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจชเจพเจธ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ wafเจ‡เจธ เจฒเจˆ เจ‰เจชเจฐเฉ‹เจ•เจค เจฆเฉ€ เจฌเจœเจพเจ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เฉ€:

$ ./build.py -- --disable-python

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจฎเฉเฉฑเจ– เจ•เจฎเจพเจ‚เจก เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ ./waf configure --disable-python. เจ‡เฉฑเจฅเฉ‡ เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจนเฉ‹เจฐ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเฉเจเจพเจ… เจนเจจ เจตเจพเจซ.

เจฌเจฟเจฒเจก เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฃเจพ

ns-3 เจฐเฉ€เจฒเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจฎ เจฒเฉ€เจจเจ•เจธ เจ…เจคเฉ‡ เจฎเฉˆเจ•เฉ‹เจธ เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจเจพเจ‚ 'เจคเฉ‡ เจฐเฉ€เจฒเฉ€เจœเจผ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‰เจชเจฒเจฌเจง เจจเจตเฉ€เจจเจคเจฎ C++ เจ•เฉฐเจชเจพเจˆเจฒเจฐเจพเจ‚ 'เจคเฉ‡ เจŸเฉˆเจธเจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจธเจฎเฉ‡เจ‚ เจฆเฉ‡ เจจเจพเจฒ, เจจเจตเฉ‡เจ‚ เจ•เฉฐเจชเจพเจˆเจฒเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจจเจตเฉ‡เจ‚ เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจœเจพเจฐเฉ€ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจ‡เจน เจจเจตเฉ‡เจ‚ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจฌเจพเจฐเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจชเฉˆเจกเฉˆเจ‚เจŸเจฟเจ• เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค ns-3 เจ‡เจธ เจฆเฉ‡ เจฌเจฟเจฒเจก เจจเฉ‚เฉฐ เจธเจพเจฐเฉ€เจ†เจ‚ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฎเฉฐเจจเจฃ เจฒเจˆ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ•เจˆ เจตเจพเจฐ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเจฟเจธเจŸเจฎ เจคเฉ‡ เจ‡เฉฑเจ• เจชเฉเจฐเจพเจฃเจพ เจธเฉฐเจธเจ•เจฐเจฃ เจšเจฒเจพ เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เฉฑเจ• เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจฌเจฟเจฒเจก เจจเฉ‚เฉฐ เจฐเฉ‹เจ• เจธเจ•เจฆเฉ€ เจนเฉˆเฅค

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเจนเจฟเจฒเจพเจ‚ เจซเฉ‡เจกเฉ‹เจฐเจพ 3.28 เจฒเจˆ nsโ€‘28 เจœเจพเจฐเฉ€ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจฎเฉเฉฑเจ– เจธเฉฐเจธเจ•เจฐเจฃ เจธเจผเจพเจฎเจฒ เจธเฉ€เฅค เจœเฉ€เจธเฉ€เจธเฉ€ (gcc-8). เจซเฉ‡เจกเฉ‹เจฐเจพ 3.28 เจฆเฉ‡ เจ…เจงเฉ€เจจ เจฐเฉ€เจฒเฉ€เจœเจผ ns-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 เจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจตเจพเจฒเฉ‡ เจฐเฉ€เจฒเฉ€เจœเจผเจพเจ‚ เจตเจฟเฉฑเจš, เจตเจฟเฉฑเจš เจตเจพเจซ เจ‡เจนเจจเจพเจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจ•เจฒเจช เจ‰เจชเจฒเจฌเจง เจนเฉˆเฅค เจ‡เจน g++ เจ…เจคเฉ‡ clang++ เจตเจฟเฉฑเจš "-Werror" เจซเจฒเฉˆเจ— เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจจเฉ‚เฉฐ เจ…เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน "--disable-werror" เจตเจฟเจ•เจฒเจช เจนเฉˆ เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉŒเจฐเจพเจจ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

$ ./waf configure --disable-werror --enable-examples --enable-tests

เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเฉ‹ เจœเจพเจ‚ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฐเฉ‹

เจ•เฉเจ เจนเฉเจ•เจฎ เจตเจพเจซ เจธเจฟเจฐเจซเจผ เจธเฉฐเจฐเจšเจจเจพ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจ…เจฐเจฅ เจนเจจ, เจ…เจคเฉ‡ เจ•เฉเจ เจธเจฟเจฐเจซเจผ เจฌเจฟเจฒเจก เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจตเฉˆเจง เจนเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ ns-3 เจ‡เจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจฌเจฟเฉฑเจŸ เจธเฉˆเจŸเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจฏเฉ‹เจ— เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจฆเฉฑเจ–เจฃ เจตเจฐเจค เจธเฉ‚เจกเฉ‹, เจœเจฟเจตเฉ‡เจ‚ เจ‰เฉฑเจชเจฐ เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจน เจธเฉฐเจฐเจšเจจเจพ เจ•เจฆเจฎ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐ เจฆเฉ‡เจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเฉฐเจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸ เจตเฉ€ เจธเจผเจพเจฎเจฒ เจนเจจเฅค

$ ./waf configure --enable-sudo --enable-examples --enable-tests

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ…เจœเจฟเจนเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจตเจพเจซ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‡เจ—เจพ เจธเฉ‚เจกเฉ‹เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ เจจเจพเจฒ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ‡เจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจ•เฉ‹เจก เจธเจพเจ•เจŸ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฒเจˆ เจฐเฉ‚เจŸ. The เจตเจพเจซ เจธเฉฐเจฐเจšเจจเจพ เจ…เจคเฉ‡ เจฌเจฟเจฒเจก เจธเจŸเฉˆเจชเจธ เจฒเจˆ เจ•เจˆ เจนเฉ‹เจฐ เจตเจฟเจ•เจฒเจช เจ‰เจชเจฒเจฌเจง เจนเจจเฅค เจ†เจชเจฃเฉ‡ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเฉ€ เจชเฉœเจšเฉ‹เจฒ เจ•เจฐเจจ เจฒเจˆ, เจฆเจพเจ–เจฒ เจ•เจฐเฉ‹:

$ ./waf --help

เจ…เจ—เจฒเฉ‡ เจญเจพเจ— เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจธเฉฐเจฌเฉฐเจงเฉ€ เจ•เฉเจ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒเจพเจ‚

เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฆเฉ‡เจ– เจšเฉเฉฑเจ•เฉ‡ เจนเจพเจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจตเจพเจซ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€เจ†เจ‚ เจฒเจˆ เจกเฉ€เจฌเฉฑเจ— ะธ เจ…เจจเฉเจ•เฉ‚เจฒ:

$ ./waf --build-profile=debug

เจ‡เฉฑเจ• เจ‡เฉฐเจŸเจฐเจฎเฉ€เจกเฉ€เจเจŸ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒ เจตเฉ€ เจนเฉˆ, เจฐเฉ€เจฒเจฟเจœเจผ. เจตเจฟเจ•เจฒเจช -d เจฆเจพ เจธเจฎเจพเจจเจพเจฐเจฅเฉ€ เจนเฉˆ --build-profile. เจฌเจฟเจฒเจก เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒ เจฒเฉŒเจ—เจฟเฉฐเจ—, เจฆเจพเจ…เจตเฉ‡, เจ…เจคเฉ‡ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ เจธเจตเจฟเฉฑเจšเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ:

ns-3 เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒเฅค เจ…เจงเจฟเจ†เจ‡ 3

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจฒเฉŒเจ—เจฟเฉฐเจ— เจ…เจคเฉ‡ เจฆเจพเจ…เจตเฉ‡ เจธเจฟเจฐเจซ เจกเฉ€เจฌเฉฑเจ— เจฌเจฟเจฒเจกเจพเจ‚ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจนเจจเฅค เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจชเฉเจฐเฉˆเจ•เจŸเจฟเจธ เจคเฉเจนเจพเจกเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจตเจฟเจ•เจธเจค เจ•เจฐเจจเจพ เจนเฉˆ, เจซเจฟเจฐ เจ‡เฉฑเจ• เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจฌเจฟเจฒเจก เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจตเจพเจฐ-เจตเจพเจฐ เจฐเจจ (เจ…เฉฐเจ•เฉœเฉ‡ เจœเจพเจ‚ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฒเจˆ) เจ•เจฐเฉ‹เฅค

เจœเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เฉ‹เจก เจนเฉˆ เจœเฉ‹ เจธเจฟเจฐเจซ เจ•เฉเจ เจฌเจฟเจฒเจก เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจšเฉฑเจฒเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ•เฉ‹เจก เจฐเฉˆเจชเจฐ เจฎเฉˆเจ•เจฐเฉ‹ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹:

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;)

เจกเจฟเจซเฉŒเจฒเจŸ, เจตเจพเจซ เจฌเจฟเจฒเจก เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ•เจฒเจพเจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจจ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจตเจฟเจ•เจฒเจช เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ -โ€ฏ-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
...

เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเจฐ เจตเจพเจฐ เจจเจตเฉ€เจจเจคเจฎ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจฒเจฟเจ–เจฃ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ•เจˆ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€เจ†เจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒ 'เจคเฉ‡ เจธเจตเจฟเจš เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจตเจพเจซ เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฐเฉ€เจ•เฉฐเจชเจพเจˆเจฒ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚, เจธเจฟเจฐเจซ เจ‡เจธเจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจˆเจฒ เจ•เจฐเฉ‡เจ—เจพเฅค

เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจฌเจฟเจฒเจก เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจฌเจฆเจฒเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเจฐ เจตเจพเจฐ เจ‰เจนเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเจ•เจฒเจช เจฆเฉ‡เจฃ เจฒเจˆ เจธเจพเจตเจงเจพเจจ เจฐเจนเจฟเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ•เจˆ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจเจพ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ—เจฒเจคเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ:

$ 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

เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจ…เจคเฉ‡ เจซเจฒเฉˆเจ—

เจ‰เจชเจฐเฉ‹เจ•เจค เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจตเจพเจซ ns-3 เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ GCC เจคเฉ‹เจ‚ C++ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ ( g ++). เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจคเฉเจธเฉ€เจ‚ เจ‰เจธ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจตเจฐเจคเจฆเฉ‡ เจนเฉ‹ เจตเจพเจซ C++ เจ•เฉฐเจชเจพเจˆเจฒเจฐ, CXX เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจ•เฉ‡เฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, C++ เจ•เฉฐเจชเจพเจˆเจฒเจฐ Clang, clang++ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ,

$ CXX="clang++" ./waf configure 
$ ./waf build 

เจ‡เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจตเจพเจซ เจตเจฐเจค เจ•เฉ‡ เจตเฉฐเจกเจฟเจ† เจธเฉฐเจ•เจฒเจจ เจตเจฐเจคเจฃ เจฒเจˆ distcc:

$ CXX="distcc g++" ./waf configure 
$ ./waf build

distcc เจ…เจคเฉ‡ เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจŸเจก เจ•เฉฐเจชเจพเจˆเจฒเฉ‡เจธเจผเจจ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเฉ€ เจญเจพเจ— เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจฒเฉฑเจญเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค ns-3 เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจซเจฒเฉˆเจ— เจœเฉ‹เฉœเจจ เจฒเจˆ, CXXFLAGS_EXTRA เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹เฅค

เจธเฉˆเจŸเจฟเฉฐเจ—

เจตเจพเจซ เจธเจฟเจธเจŸเจฎ 'เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจฅเจพเจตเจพเจ‚ 'เจคเฉ‡ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจนเจจ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ, เจ…เจคเฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ Waf เจ‡เจนเจจเจพเจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจœเจพเจฃเจฆเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจ•เจฟเจคเฉ‡ เจตเฉ€ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฌเจฟเจฒเจก เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ เจชเจธเฉฐเจฆ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจคเจพเจ‚ เจ‰เจน เจ•เจฎเจพเจ‚เจก เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเจจ ./waf เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹. เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจฒเจˆ เจกเจฟเจซเจพเจฒเจŸ เจ…เจ—เฉ‡เจคเจฐ เจนเฉˆ / usr / localเจ‡เจธเฉ‡ เจ•เจฐเจ•เฉ‡ ./waf เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‡เจ—เจพ / usr / local / bin, เจตเจฟเฉฑเจš เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ / usr / local / lib เจ…เจคเฉ‡ เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš /usr/local/เจธเจผเจพเจฎเจฒ. เจธเฉเจชเจฐเจฏเฉ‚เจœเจผเจฐ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเจฟเจซเฉŒเจฒเจŸ เจชเฉเจฐเฉ€เจซเจฟเจ•เจธ เจจเจพเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ‡เฉฑเจ• เจ†เจฎ เจ•เจฎเจพเจ‚เจก เจนเฉ‹เจตเฉ‡เจ—เฉ€ sudo ./waf เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹. เจฒเจพเจ‚เจš เจ•เฉ€เจคเฉ‡ เจœเจพเจฃ 'เจคเฉ‡, Waf เจชเจนเจฟเจฒเจพเจ‚ เจฌเจฟเจฒเจก เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจพเจ‚เจเฉ€เจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเฉ‡เจ—เจพ, เจซเจฟเจฐ เจธเจฅเจพเจจเจ• เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจš เจธเฉฐเจฐเจšเจฟเจค เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ‡ เจฎเจพเจฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเฉ‡เจ—เจพเฅค เจ‡เจธ เจฒเจˆ เจœเจฆเฉ‹เจ‚ เจ•เจฟเจธเฉ‡ เจธเจฟเจธเจŸเจฎ 'เจคเฉ‡ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจน เจœเจพเจ‚เจš เจ•เจฐเจจเจพ เจšเฉฐเจ—เจพ เจ…เจญเจฟเจ†เจธ เจนเฉˆ เจ•เจฟ เจธเจนเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพ เจฐเจนเฉ€ เจนเฉˆเฅค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ เจตเจฟเจ•เจฒเจช เจจเฉ‚เฉฐ เจชเจพเจธ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจชเฉเจฐเฉ€เจซเจฟเจ•เจธ เจจเจพเจฒ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ --prefix, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ:

./waf configure --prefix=/opt/local

เจœเฉ‡เจ•เจฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, เจฌเจฟเจฒเจก เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจ•เจฎเจพเจ‚เจก เจตเจฟเฉฑเจš เจฆเจพเจ–เจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆ ./waf, เจ…เจ—เฉ‡เจคเจฐ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ /opt/local.

เจฆเฉ€ เจŸเฉ€เจฎ ./waf clean เจœเฉ‡เจ•เจฐ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจตเจฐเจคเจฆเฉ€ เจนเฉˆ เจคเจพเจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจตเจพเจซ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจ…เจ—เฉ‡เจคเจฐ เจฆเฉ‡ เจ…เจงเฉ€เจจ.

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, ns-3 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจ•เจพเจฒ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ ./waf install. เจฌเจนเฉเจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจชเจตเฉ‡เจ—เฉ€ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจตเจพเจซ เจฌเจฟเจฒเจก เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจšเฉเจฃเฉ‡เจ—เจพ, เจชเจฐ เจ•เฉเจ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‡เจธ เจจเฉ‚เฉฐ เจฒเจพเจญเจฆเจพเจ‡เจ• เจธเจฎเจ เจธเจ•เจฆเฉ‡ เจนเจจ เจœเฉ‡เจ•เจฐ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ—เจคเฉ€เจตเจฟเจงเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš ns-3 เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค

Waf เจธเจฟเฉฐเจ—เจฒ

ns-3 เจธเฉ‹เจฐเจธ เจŸเฉเจฐเฉ€ เจฆเฉ‡ เจ‰เฉฑเจชเจฐเจฒเฉ‡ เจชเฉฑเจงเจฐ 'เจคเฉ‡, เจธเจฟเจฐเจซ เจ‡เฉฑเจ• Waf เจฒเจฟเจชเฉ€ เจนเฉˆเฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเจพ เจธเจฎเจพเจ‚ เจฌเจฟเจคเจพเจ“เจ—เฉ‡ scratch/ เจœเจพเจ‚ เจกเฉ‚เฉฐเจ˜เฉ‡ เจตเจฟเฉฑเจšsrc/... เจ…เจคเฉ‡ เจ‰เจธเฉ‡ เจตเฉ‡เจฒเฉ‡ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจนเฉˆ เจตเจพเจซ. เจคเฉเจธเฉ€เจ‚ เจฌเฉฑเจธ เจฏเจพเจฆ เจฐเฉฑเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเฉฑเจฅเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจฆเฉŒเฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจตเจพเจซ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจ…เจจเฉเจธเจพเจฐ:

$ ../../../waf ...

เจชเจฐ เจ‡เจน เจฅเจ•เจพเจตเจŸ เจตเจพเจฒเจพ เจ…เจคเฉ‡ เจ—เจฒเจคเฉ€ เจตเจพเจฒเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ‡เจธ เจฒเจˆ เจฌเจฟเจนเจคเจฐ เจนเฉฑเจฒ เจนเจจเฅค เจ‡เฉฑเจ• เจ†เจฎ เจคเจฐเฉ€เจ•เจพ เจ‡เฉฑเจ• เจŸเฉˆเจ•เจธเจŸ เจเจกเฉ€เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ emacs เจœ vim, เจœเจฟเจธ เจตเจฟเฉฑเจš เจฆเฉ‹ เจŸเจฐเจฎเฉ€เจจเจฒ เจธเฉˆเจธเจผเจจ เจ–เฉ‹เจฒเฉเจนเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจ‡เฉฑเจ• เจจเฉ‚เฉฐ ns-3 เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเจพ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจนเฉ€ เจนเฉˆ เจŸเจพเจฐเจฌเจพเจฒ, เจซเจฟเจฐ เจ‡เฉฑเจ• เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฎเจฆเจฆ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ:

$ export NS3DIR="$PWD" 
$ function waff { cd $NS3DIR && ./waf $* ; } 

$ cd scratch 
$ waff build

เจฎเฉ‹เจกเฉ€เจŠเจฒ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ‡เจน เจ‡เฉฑเจ• เจฎเจพเจฎเฉ‚เจฒเฉ€ waf เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ เจชเจฐเจคเจพเจ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ exec ../../waf. เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจ…เจœเจฟเจนเจพ เจจเจพ เจ•เจฐเฉ‹. เจ‡เจน เจจเจตเฉ‡เจ‚ เจฒเฉ‹เจ•เจพเจ‚ เจฒเจˆ เจ‰เจฒเจเจฃ เจตเจพเจฒเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡, เจœเจฆเฉ‹เจ‚ เจฎเจพเฉœเจพ เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจฌเจฟเจฒเจก เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจตเจฟเฉฑเจš เจฎเฉเจธเจผเจ•เจฒ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‰เฉฑเจชเจฐ เจฆเจฟเจ–เจพเจ เจ—เจ เจนเฉฑเจฒ เจ‰เจน เจฎเจพเจฐเจ— เจนเจจ เจœเฉ‹ เจตเจฐเจคเฉ‡ เจœเจพเจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจเฅค

3.5 เจŸเฉˆเจธเจŸเจฟเฉฐเจ— ns-3

เจคเฉเจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจšเจฒเจพ เจ•เฉ‡ ns-3 เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจฆเฉ‡ เจฏเฉ‚เจจเจฟเจŸ เจŸเฉˆเจธเจŸ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ ./test.py:

$ ./test.py

เจ‡เจน เจชเฉเจฐเฉ€เจ–เจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจšเจฒเจพเจˆเจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ เจตเจพเจซ. เจ…เฉฐเจค เจตเจฟเฉฑเจš เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจตเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ•เจฟเจนเจพ เจ—เจฟเจ† เจนเฉˆ:

92 of 92 tests passed (92 passed, 0 failed, 0 crashed, 0 valgrind errors)

เจ‡เจน เจตเฉˆเจฒเจ—เฉเจฐเจฟเฉฐเจก เจ•เฉเจฐเฉˆเจธเจผเจพเจ‚, เจ•เจฐเฉˆเจธเจผเจพเจ‚ เจœเจพเจ‚ เจคเจฐเฉเฉฑเจŸเฉ€เจ†เจ‚ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจธเฉเจจเฉ‡เจนเจพ เจนเฉˆ, เจ•เฉ‹เจก เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจœเจพเจ‚ เจŸเฉ‚เจฒเจธ เจ…เจคเฉ‡ เจ•เฉ‹เจก เจตเจฟเจšเจ•เจพเจฐ เจ…เจธเฉฐเจ—เจคเจคเจพ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจซเจพเจˆเจจเจฒ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจตเฉ€ เจฆเฉ‡เจ–เฉ‹เจ—เฉ‡ เจตเจพเจซ เจ…เจคเฉ‡ เจนเจฐเฉ‡เจ• เจŸเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจšเจฒเจพ เจฐเจฟเจนเจพ เจ‡เฉฑเจ• เจŸเฉˆเจธเจŸเจฐ, เจœเฉ‹ เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เจพ:

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: ..." เจฒเจพเจˆเจจเจพเจ‚ เจฆเจพ เจ•เฉเจฐเจฎ เจตเฉฑเจ–เจฐเจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‡เจน เจ†เจฎ เจ—เฉฑเจฒ เจนเฉˆเฅค เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจฐเจฟเจชเฉ‹เจฐเจŸ เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจธเฉฐเจ–เฉ‡เจช เจฒเจพเจˆเจจ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจธเจพเจฐเฉ‡ เจŸเฉˆเจธเจŸ เจชเจพเจธ เจนเฉ‹เจ เจนเจจ; เจ•เฉ‹เจˆ เจตเฉ€ เจŸเฉˆเจธเจŸ เจ…เจธเจซเจฒ เจœเจพเจ‚ เจ•เจฐเฉˆเจธเจผ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ† เจนเฉˆเฅค) เจ…เจคเฉ‡ เจตเจพเจซเจ…เจคเฉ‡ test.py เจฎเจธเจผเฉ€เจจ เจฆเฉ‡ เจ‰เจชเจฒเจฌเจง เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจ•เฉ‹เจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจธเจฎเจพเจจเจคเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเฉ‡เจ—เจพเฅค

3.6 เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃเจพ

เจ…เจธเฉ€เจ‚ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจตเจฟเฉฑเจš เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจตเจพเจซ. เจ‡เจน เจฌเจฟเจฒเจก เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจผเฉ‡เจ…เจฐเจก เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฎเจพเจฐเจ— เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ เจ…เจคเฉ‡ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฐเจจเจŸเจพเจˆเจฎ 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเจจเฅค เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ, เจฌเจธ เจตเจฐเจคเฉ‹ เจตเจพเจซ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฆเฉ‡ เจจเจพเจฒ -โ€ฏ-run. เจ†เจ‰ เจธเจฐเจต เจตเจฟเจ†เจชเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ ns-3 เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจธเจคเจฟ เจธเฉเจฐเฉ€ เจ…เจ•เจพเจฒ เจฆเฉเจจเจฟเจ†เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจจเฉ‚เฉฐ เจŸเจพเจˆเจช เจ•เจฐเจ•เฉ‡:

$ ./waf --run hello-simulator

Waf เจชเจนเจฟเจฒเจพเจ‚ เจ‡เจน เจœเจพเจ‚เจš เจ•เจฐเฉ‡เจ—เจพ เจ•เจฟ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡ เจคเจพเจ‚ เจ‰เจธ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ“เฅค เจซเจฟเจฐ เจตเจพเจซ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจšเจฒเจพเจเจ—เจพ เจœเฉ‹ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจชเฉˆเจฆเจพ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

Hello Simulator

เจตเจงเจพเจˆเจ†เจ‚! เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจ‡เฉฑเจ• ns-3 เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเฉ‹!

เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉ€ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจฎเฉˆเจ‚ เจจเจคเฉ€เจœเฉ‡ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเจพ?

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเฉเจจเฉ‡เจนเฉ‡ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹ เจตเจพเจซเจ‡เจน เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจฌเจฟเจฒเจก เจธเจซเจฒเจคเจพเจชเฉ‚เจฐเจตเจ• เจชเฉ‚เจฐเจพ เจนเฉ‹เจ‡เจ† เจนเฉˆ, เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเจนเฉ€เจ‚ เจตเฉ‡เจ– เจฐเจนเฉ‡ เจนเฉ‹ "เจนเฉˆเจฒเฉ‹ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ", เจซเจฟเจฐ เจ‡เฉฑเจ• เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆ เจ•เจฟ [เจฌเจฟเจฒเจก-เจตเจฟเจฆ-เจตเจพเจซ] เจธเฉˆเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจฌเจฟเจฒเจก เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจ‡เจธ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจนเฉˆ เจ…เจจเฉเจ•เฉ‚เจฒ, เจชเจฐ เจฎเฉ‹เจก 'เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจฃ เจคเฉ‹เจ‚ เจ–เฉเฉฐเจ เจ—เจฟเจ† เจกเฉ€เจฌเฉฑเจ—. เจ‡เจธ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจ—เจ เจธเจพเจฐเฉ‡ เจ•เฉฐเจธเฉ‹เจฒ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ ns-3 เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจฒเฉŒเจ—เจฟเฉฐเจ— เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจ•เจธเจŸเจฎ เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฟเฉฐเจŸ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เฉ‹เจก เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจ‡เจธ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจคเฉ‹เจ‚ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ†เจชเจฃเฉ‡ เจ†เจช เจนเฉ€ เจ…เจฏเฉ‹เจ— เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ - เจ‡เจน "เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค" เจนเฉˆเฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ "เจนเฉˆเจฒเฉ‹ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ" เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡, เจคเจพเจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฐเจœ เจ•เจฐเฉ‹:

$ ./waf configure --build-profile=debug --enable-examples --enable-tests

เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจตเจพเจซ ns-3 เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฆเฉ‡ เจกเฉ€เจฌเฉฑเจ— เจตเจฐเจœเจจ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸ เจธเจผเจพเจฎเจฒ เจนเจจเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจซเจฟเจฐ เจŸเจพเจˆเจช เจ•เจฐเจ•เฉ‡ เจ•เฉ‹เจก เจฆเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจกเฉ€เจฌเฉฑเจ— เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ

$ ./waf

เจนเฉเจฃ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹ เจนเฉˆเจฒเฉ‹-เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจ•เฉ€เจคเฉ€ เจจเจคเฉ€เจœเจพ เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

3.6.1 เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจธ

ns-3 เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจธ เจชเจพเจธ เจ•เจฐเจจ เจฒเจˆ, เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ‡ เจชเฉˆเจŸเจฐเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹:

$ ./waf --run <ns3-program> --command-template="%s <args>"

เจฌเจฆเจฒเฉ‹ เจคเฉเจนเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ‡ เจจเจพเจฎ เจ…เจคเฉ‡ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจธ เจฒเจˆเฅค เจฆเจฒเฉ€เจฒ -โ€ฏ-command-template เจจเฉ‚เฉฐ เจตเจพเจซ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ…เจธเจฒ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจ…เฉฐเจœเจจ เจนเฉˆ เจตเจพเจซ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค Waf เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจฌเจฟเจฒเจก เจชเฉ‚เจฐเจพ เจนเฉ‹ เจ—เจฟเจ† เจนเฉˆ, เจธเจผเฉ‡เจ…เจฐเจก เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฎเจพเจฐเจ— เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเจพ เจนเฉˆ, เจซเจฟเจฐ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ‡ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจจ เจฒเจˆ %s เจชเจฒเฉ‡เจธเจนเฉ‹เจฒเจกเจฐ เจฒเจˆ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเจพเจฎ เจฌเจฆเจฒเจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจธเฉฐเจŸเฉˆเจ•เจธ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจธเฉฐเจธเจ•เจฐเจฃ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš ns-3 เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฟเฉฐเจ—เจฒ เจ•เฉ‹เจŸเจธ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ:

$ ./waf --run '<ns3-program> --arg1=value1 --arg2=value2 ...'

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจšเฉ‹เจฃ เจธเฉ‚เจŸ เจšเจฒเจพ เจฐเจนเฉ€ เจนเฉˆเฅค เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจŸเฉˆเจธเจŸ เจธเฉ‚เจŸ เจนเฉˆ เจœเจฟเจธ เจจเฉ‚เฉฐ เจฎเจพเจˆเจŸเฉˆเจธเจŸ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ…เจœเจฟเจนเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ)เฅค เจ‰เฉฑเจชเจฐ เจ…เจธเฉ€เจ‚ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจตเจฟเฉฑเจš เจ•เจˆ เจŸเฉˆเจธเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ ./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 เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจธเจนเฉ‚เจฒเจค เจฆเฉ‡ เจ…เจงเฉ€เจจ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจกเฉ€เจฌเฉฑเจ—เจฐ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจœเฉ€เจกเฉ€เจฌเฉ€) เจœเจพเจ‚ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจŸเฉˆเจธเจŸ เจŸเฉ‚เจฒ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, valgrind), เจธเจฎเจพเจจ เจฐเฉ‚เจช เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ -โ€ฏ-command-template = "โ€ฆ". เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจกเฉ€เจฌเจ—เจฐ เจตเจฟเฉฑเจš เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจœเฉ€เจกเฉ€เจฌเฉ€ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจธ เจฆเฉ‡ เจจเจพเจฒ เจคเฉเจนเจพเจกเจพ เจนเฉˆเจฒเฉ‹-เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ ns-3 เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ:

$ ./waf --run=hello-simulator --command-template="gdb %s --args <args>"

เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ ns-3 เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเจพ เจจเจพเจฎ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจฆเฉ‡ เจจเจพเจฒ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ -โ€ฏ-run, เจ…เจคเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเจนเฉ‚เจฒเจค (เจ‡เฉฑเจฅเฉ‡ เจœเฉ€เจกเฉ€เจฌเฉ€) เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพ เจŸเฉ‹เจ•เจจ เจนเฉˆ -โ€ฏ-command-template. เจตเจฟเจ•เจฒเจช -โ€ฏ-args เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจœเฉ€เจกเฉ€เจฌเฉ€เจ•เจฟ เจฌเจพเจ•เฉ€ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ "เจฒเฉ‹เจ…เจฐ" เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉˆเฅค (เจ•เฉเจ เจธเฉฐเจธเจ•เจฐเจฃ เจœเฉ€เจกเฉ€เจฌเฉ€ เจตเจฟเจ•เจฒเจช เจจเจนเฉ€เจ‚ เจธเจฎเจเจฆเฉ‡ -โ€ฏ-args. เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจคเฉ‹เจ‚ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ“ -โ€ฏ-command-template เจ…เจคเฉ‡ เจ•เจฎเจพเจ‚เจก เจธเฉˆเฉฑเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ เจœเฉ€เจกเฉ€เจฌเฉ€ เจ†เจฐเจ—เจœเจผ.) เจ…เจธเฉ€เจ‚ เจกเฉ€เจฌเจ—เจฐ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจŸเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ‡เจธ เจตเจฟเจ…เฉฐเจœเจจ เจ…เจคเฉ‡ เจชเจฟเจ›เจฒเฉ€ เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚:

$ ./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 
}

เจ•เจฎเจพเจ‚เจก เจฆเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจ‡เจน เจธเจœเจพเจตเจŸ เจฎเฉŒเจœเฉ‚เจฆเจพ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฐเฉฑเจ–เจฆเฉ€ เจนเฉˆ, เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจตเจพเจซเจ…เจคเฉ‡ เจซเจฟเจฐ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจตเจพเจซ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจตเจฐเจ•เจฟเฉฐเจ— เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจฎเฉŒเจœเฉ‚เจฆเจพ เจตเจฐเจ•เจฟเฉฐเจ— เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจตเจพเจชเจธ เจฌเจฆเจฒเจฃ เจฒเจˆเฅค เจ…เจธเฉ€เจ‚ เจŸเฉ€เจฎ เจฆเจพ เจœเจผเจฟเจ•เจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ -โ€ฏ-cwd เจธเฉฐเจชเฉ‚เจฐเจจเจคเจพ เจฒเจˆ, เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจฟเจฐเจซเจผ เจ‰เฉฑเจš-เจชเฉฑเจงเจฐเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ Waf เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ‰เฉฑเจฅเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจซเจพเจˆเจฒเจพเจ‚ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจœเจพเจฐเฉ€: เจ…เจงเจฟเจ†เจ‡ 4

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹