Π’ΠΎΠ΄ΠΈΡ‡ Π·Π° симулатор ΠΌΡ€Π΅ΠΆΠ΅ нс-3. ΠŸΠΎΠ³Π»Π°Π²Ρ™Π΅ 3

Π’ΠΎΠ΄ΠΈΡ‡ Π·Π° симулатор ΠΌΡ€Π΅ΠΆΠ΅ нс-3. ΠŸΠΎΠ³Π»Π°Π²Ρ™Π΅ 3
ΠΏΠΎΠ³Π»Π°Π²Ρ™Π΅ 1,2

3 ΠŸΠΎΡ‡Π΅Ρ‚Π°ΠΊ Ρ€Π°Π΄Π°
3.1 ΠŸΡ€Π΅Π³Π»Π΅Π΄
3.2 ΠŸΡ€Π΅Π΄ΡƒΡΠ»ΠΎΠ²ΠΈ
3.2.1 ΠŸΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ нс-3 издања ΠΊΠ°ΠΎ ΠΈΠ·Π²ΠΎΡ€Π½Π΅ Π°Ρ€Ρ…ΠΈΠ²Π΅
3.3 ΠŸΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ нс-3 користСћи Π“ΠΈΡ‚
3.3.1 Π£Ρ‡ΠΈΡ‚Π°Π²Π°ΡšΠ΅ нс-3 користСћи Π‘Π°ΠΊΠ΅
3.4 ΠœΠΎΠ½Ρ‚Π°ΠΆΠ° нс-3
3.4.1 Π˜Π·Π³Ρ€Π°Π΄ΡšΠ° са Π±ΡƒΠΈΠ»Π΄.ΠΏΠΈ
3.4.2 Π˜Π·Π³Ρ€Π°Π΄ΡšΠ° са Π‘Π°ΠΊΠ΅
3.4.3 Направи са Π’Π°Ρ„-ΠΎΠΌ
3.5 Π’Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ нс-3
3.6 ΠŸΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ скриптС
3.6.1 АргумСнти ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС
3.6.2 ΠžΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°
3.6.3 Π Π°Π΄Π½ΠΈ ΠΈΠΌΠ΅Π½ΠΈΠΊ

ΠŸΠΎΠ³Π»Π°Π²Ρ™Π΅ КБНУМКБ

ΠŸΠΎΡ‡Π΅Ρ‚Π°ΠΊ

Ово ΠΏΠΎΠ³Π»Π°Π²Ρ™Π΅ ΠΈΠΌΠ° Π·Π° Ρ†ΠΈΡ™ Π΄Π° ΠΏΡ€ΠΈΠΏΡ€Π΅ΠΌΠΈ Ρ‡ΠΈΡ‚Π°ΠΎΡ†Π° Π΄Π° ΠΏΠΎΡ‡Π½Π΅ са Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ€ΠΎΠΌ који ΠΌΠΎΠΆΠ΄Π° Π½ΠΈΠΊΠ°Π΄Π° нијС инсталирао нс-3. ΠŸΠΎΠΊΡ€ΠΈΠ²Π° ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, прСдусловС, ΠΊΠ°ΠΊΠΎ Π΄Π° Π΄ΠΎΠ±ΠΈΡ˜Π΅Ρ‚Π΅ нс-3, ΠΊΠ°ΠΊΠΎ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ нс-3 ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° тСстиратС ΡΠ²ΠΎΡ˜Ρƒ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΡƒ ΠΈ ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅.

3.1 ΠŸΡ€Π΅Π³Π»Π΅Π΄

нс-3 симулатор јС ΠΈΠ·Π³Ρ€Π°Ρ’Π΅Π½ ΠΊΠ°ΠΎ систСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° софтвСра Π·Π° ΡΠ°Ρ€Π°Π΄ΡšΡƒ. Π’ΠΎΠΊΠΎΠΌ асСмблСра, ΠΊΠΎΠ΄ корисничких ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° сС ΠΏΠΎΠ²Π΅Π·ΡƒΡ˜Π΅ са ΠΎΠ²ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠ°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΡΠΊΠΈ Ρ˜Π΅Π·ΠΈΡ†ΠΈ Π¦++ ΠΈΠ»ΠΈ ΠŸΠΈΡ‚Ρ…ΠΎΠ½ сС користС Π·Π° писањС ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΡ’Π΅Π½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°.

Нс-3 сС дистрибуира ΠΊΠ°ΠΎ ΠΈΠ·Π²ΠΎΡ€Π½ΠΈ ΠΊΠΎΠ΄, ΡˆΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈ Π΄Π° Ρ†ΠΈΡ™Π½ΠΈ систСм ΠΌΠΎΡ€Π° ΠΈΠΌΠ°Ρ‚ΠΈ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ΅ Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ софтвСра Π΄Π° Π±ΠΈ сС ΠΏΡ€Π²ΠΎ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠ»Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, Π° Π·Π°Ρ‚ΠΈΠΌ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΎ кориснички ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ. Π£ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, нс-3 Π±ΠΈ сС ΠΌΠΎΠ³Π»ΠΈ дистрибуирати ΠΊΠ°ΠΎ Π³ΠΎΡ‚ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π·Π° ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½ΠΈ систСм, Π°Ρƒ будућности Π±ΠΈ сС ΠΌΠΎΠ³Π»Π΅ дистрибуирати Π½Π° овај Π½Π°Ρ‡ΠΈΠ½. Али данас ΠΌΠ½ΠΎΠ³ΠΈ корисници Π·Π°ΠΏΡ€Π°Π²ΠΎ Ρ€Π°Π΄Π΅ свој посао ΡƒΡ€Π΅Ρ’ΡƒΡ˜ΡƒΡ›ΠΈ сам нс-3, Ρ‚Π°ΠΊΠΎ Π΄Π° јС корисно ΠΈΠΌΠ°Ρ‚ΠΈ ΠΈΠ·Π²ΠΎΡ€Π½ΠΈ ΠΊΠΎΠ΄ Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Ако Π½Π΅ΠΊΠΎ ΠΆΠ΅Π»ΠΈ Π΄Π° ΠΏΡ€Π΅ΡƒΠ·ΠΌΠ΅ посао ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ° Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π΅ систСмС, Π½Π΅ΠΊΠ° сС јави Π½Π° мСјлинг листу нс-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ.

Π—Π°Ρ‚ΠΈΠΌ Ρ›Π΅ΠΌΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ‚ΠΈ Ρ‚Ρ€ΠΈ Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ ΠΈ ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ нс-3. ΠŸΡ€Π²ΠΈ јС Π΄Π° ΠΏΡ€Π΅ΡƒΠ·ΠΌΠ΅Ρ‚Π΅ ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π²Π°Π½ΠΈΡ‡Π½ΠΎ издањС са Π³Π»Π°Π²Π½ΠΎΠ³ ΡΠ°Ρ˜Ρ‚Π°. Π”Ρ€ΡƒΠ³ΠΈ јС ΠΈΠ·Π±ΠΎΡ€ ΠΈ склапањС копија Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈΡ… Π²Π΅Ρ€Π·ΠΈΡ˜Π° основнС нс-3 ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π΅. Π’Ρ€Π΅Ρ›Π΅ јС ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΈΡ… Π°Π»Π°Ρ‚Π° Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ Π·Π° ΡƒΡ‡ΠΈΡ‚Π°Π²Π°ΡšΠ΅ вишС Π΅ΠΊΡΡ‚Π΅Π½Π·ΠΈΡ˜Π° Π·Π° нс-3. ΠŸΡ€ΠΎΡ›ΠΈ Ρ›Π΅ΠΌΠΎ ΠΊΡ€ΠΎΠ· сваки Ρ˜Π΅Ρ€ сС Π°Π»Π°Ρ‚ΠΈ ΠΌΠ°Π»ΠΎ Ρ€Π°Π·Π»ΠΈΠΊΡƒΡ˜Ρƒ.

Π˜ΡΠΊΡƒΡΠ½ΠΈ корисници Π›ΠΈΠ½ΡƒΠΊΠ° ΠΌΠΎΠ³Ρƒ сС Π·Π°ΠΏΠΈΡ‚Π°Ρ‚ΠΈ Π·Π°ΡˆΡ‚ΠΎ нс-3 нијС ΠΎΠ±Π΅Π·Π±Π΅Ρ’Π΅Π½ ΠΊΠ°ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΊΠ°ΠΎ Π²Π΅Ρ›ΠΈΠ½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° којС користС ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π°? Иако ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Π΅ Π›ΠΈΠ½ΡƒΠΊ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π΅ (Π½ΠΏΡ€. Π”Π΅Π±ΠΈΠ°Π½), Π²Π΅Ρ›ΠΈΠ½Π° корисника Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ ΡƒΡ€Π΅Ρ’ΡƒΡ˜Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈ ΠΌΠΎΡ€Π° сами Π΄Π° ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ нс-3, Ρ‚Π°ΠΊΠΎ Π΄Π° јС доступност ΠΈΠ·Π²ΠΎΡ€Π½ΠΎΠ³ ΠΊΠΎΠ΄Π° Π·Π³ΠΎΠ΄Π½Π°. Из Ρ‚ΠΎΠ³ Ρ€Π°Π·Π»ΠΎΠ³Π°, фокусираћСмо сС Π½Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ ΠΈΠ· ΠΈΠ·Π²ΠΎΡ€Π°.

Π—Π° Π²Π΅Ρ›ΠΈΠ½Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° нс-3 ΠΏΡ€Π°Π²Π° ΠΊΠΎΡ€Π΅Π½ нису ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡƒΡ‡ΡƒΡ˜Π΅ сС ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΎΠ²Π°Π½ΠΎΠ³ корисничког Π½Π°Π»ΠΎΠ³Π°.

3.2 ΠŸΡ€Π΅Π΄ΡƒΡΠ»ΠΎΠ²ΠΈ

Π¦Π΅ΠΎ скуп доступних нс-3 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠΌΠ° Π±Ρ€ΠΎΡ˜Π½Π΅ зависности ΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ‚Ρ€Π΅Ρ›ΠΈΡ… страна, Π°Π»ΠΈ ΡƒΠ³Π»Π°Π²Π½ΠΎΠΌ нс-3 ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΈ користи ΡƒΠ· ΠΏΠΎΠ΄Ρ€ΡˆΠΊΡƒ Π·Π° Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΡƒΠΎΠ±ΠΈΡ‡Π°Ρ˜Π΅Π½ΠΈΡ… (чСсто инсталираних ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ: Π¦++ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€, ΠŸΠΈΡ‚Ρ…ΠΎΠ½, ΡƒΡ€Π΅Ρ’ΠΈΠ²Π°Ρ‡ ΠΈΠ·Π²ΠΎΡ€Π½ΠΎΠ³ ΠΊΠΎΠ΄Π° (Π½ΠΏΡ€. Π΅Π½Π΅Ρ€Π³ΠΈΡ˜Π°, Смацс ΠΈΠ»ΠΈ ЕцлипсС) ΠΈ, Π°ΠΊΠΎ сС користС Ρ€Π°Π·Π²ΠΎΡ˜Π½Π° ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π°, Π“ΠΈΡ‚ систСми Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Π°. Π’Π΅Ρ›ΠΈΠ½Π° Π½ΠΎΠ²ΠΈΡ… корисника Π½Π΅Ρ›Π΅ ΠΌΠΎΡ€Π°Ρ‚ΠΈ Π΄Π° Π±Ρ€ΠΈΠ½Π΅ Π°ΠΊΠΎ ΡšΠΈΡ…ΠΎΠ²Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° ΠΏΡ€ΠΈΡ˜Π°Π²ΠΈ Π΄Π° Π½Π΅ΠΊΠ΅ нс-3 Π½Π°ΠΏΡ€Π΅Π΄Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ˜Ρƒ, Π°Π»ΠΈ Π·Π° ΠΎΠ½Π΅ који ΠΆΠ΅Π»Π΅ ΠΏΠΎΡ‚ΠΏΡƒΠ½Ρƒ ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ, ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Π΅ Π²ΠΈΠΊΠΈ који ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ страницС са ΠΏΡƒΠ½ΠΎ корисних савСта ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²Π°. ЈСдна Ρ‚Π°ΠΊΠ²Π° страница јС страница Π·Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ, са упутствима Π·Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Π΅ систСмС, доступна Π½Π°: https://www.nsnam.org/wiki/Installation.

ΠžΠ΄Π΅Ρ™Π°ΠΊ ΠŸΡ€Π΅Π΄ΡƒΡΠ»ΠΎΠ²ΠΈ Π½Π° ΠΎΠ²ΠΎΠΌ Π²ΠΈΠΊΠΈΡ˜Ρƒ објашњава који су ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π·Π° ΠΏΠΎΠ΄Ρ€ΡˆΠΊΡƒ ΡƒΠΎΠ±ΠΈΡ‡Π°Ρ˜Π΅Π½ΠΈΡ… нс-3 ΠΎΠΏΡ†ΠΈΡ˜Π° ΠΈ Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΏΡ€ΡƒΠΆΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ којС сС користС Π·Π° ΡšΠΈΡ…ΠΎΠ²Ρƒ ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ Π½Π° ΡƒΠΎΠ±ΠΈΡ‡Π°Ρ˜Π΅Π½ΠΈΠΌ Π²Π΅Ρ€Π·ΠΈΡ˜Π°ΠΌΠ° Π›ΠΈΠ½ΡƒΠΊ-Π° ΠΈΠ»ΠΈ ΠΌΠ°Ρ†ΠžΠ‘-Π°.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ искористити ΠΎΠ²Ρƒ ΠΏΡ€ΠΈΠ»ΠΈΠΊΡƒ Π΄Π° истраТитС нс-3 Π²ΠΈΠΊΠΈ страницу ΠΈΠ»ΠΈ Π³Π»Π°Π²Π½Ρƒ Π²Π΅Π± Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Ρƒ: https://www.nsnam.org, Ρ˜Π΅Ρ€ Ρ‚Π°ΠΌΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π°. ΠŸΠΎΡ‡Π΅Π²ΡˆΠΈ ΠΎΠ΄ најновијС Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ нс-3 (нс-3.29), слСдСћи Π°Π»Π°Ρ‚ΠΈ су ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π·Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ нс-3:

ΠŸΠ°ΠΊΠ΅Ρ‚ Π°Π»Π°Ρ‚Π°/Π²Π΅Ρ€Π·ΠΈΡ˜Π°

  • Π¦++ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€
    Ρ†Π»Π°Π½Π³++ ΠΈΠ»ΠΈ Π³++ (Π³++ Π²Π΅Ρ€Π·ΠΈΡ˜Π° 4.9 ΠΈΠ»ΠΈ новија)
  • ΠŸΠΈΡ‚ΠΎΠ½
    ΠΏΠΈΡ‚Ρ…ΠΎΠ½2 Π²Π΅Ρ€Π·ΠΈΡ˜Π° >= 2.7.10, ΠΈΠ»ΠΈ Π²Π΅Ρ€Π·ΠΈΡ˜Π° ΠΏΠΈΡ‚Ρ…ΠΎΠ½3 >=3.4
  • Π³ΠΈΡ‚
    Π±ΠΈΠ»ΠΎ ΠΊΠΎΡ˜Ρƒ Π½Π°Ρ˜Π½ΠΎΠ²ΠΈΡ˜Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ (Π·Π° приступ нс-3 Π½Π° Π“ΠΈΡ‚Π›Π°Π±.Ρ†ΠΎΠΌ)
  • ΠΊΠ°Ρ‚Ρ€Π°Π½
    Π±ΠΈΠ»ΠΎ ΠΊΠΎΡ˜Ρƒ Π½Π°Ρ˜Π½ΠΎΠ²ΠΈΡ˜Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ (Π·Π° Ρ€Π°ΡΠΏΠ°ΠΊΠΈΠ²Π°ΡšΠ΅ нс‑3 издања)
  • Π±ΡƒΠ½Π·ΠΈΠΏ2
    Π±ΠΈΠ»ΠΎ ΠΊΠΎΡ˜Ρƒ Π½Π°Ρ˜Π½ΠΎΠ²ΠΈΡ˜Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ (Π·Π° Ρ€Π°ΡΠΏΠ°ΠΊΠΈΠ²Π°ΡšΠ΅ нс‑3 издања)

Π”Π° бистС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ ΠŸΠΈΡ‚Ρ…ΠΎΠ½-Π°, ΠΎΡ‚ΠΊΡƒΡ†Π°Ρ˜Ρ‚Π΅ python -V. Π”Π° бистС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ Π³++, ΠΎΡ‚ΠΊΡƒΡ†Π°Ρ˜Ρ‚Π΅ g++ -v. Ако Π½Π΅ΠΊΠΈ Π°Π»Π°Ρ‚ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ˜Ρƒ ΠΈΠ»ΠΈ су прСстари, ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ˜Ρ‚Π΅ Π²ΠΎΠ΄ΠΈΡ‡ Π·Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ Π½Π° нс-3 Π²ΠΈΠΊΠΈ страници.

Од сада, прСтпостављамо Π΄Π° Ρ‡ΠΈΡ‚Π°Ρ‡ користи Π›ΠΈΠ½ΡƒΠΊ, ΠœΠ°Ρ†ΠžΠ‘ ΠΈΠ»ΠΈ Π›ΠΈΠ½ΡƒΠΊ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ ΠΈ Π΄Π° ΠΈΠΌΠ° Π±Π°Ρ€Π΅ΠΌ Π³ΠΎΡ€Π΅ Π½Π°Π²Π΅Π΄Π΅Π½Π΅ Π°Π»Π°Ρ‚Π΅.

3.2.1 ΠŸΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ нс-3 издања ΠΊΠ°ΠΎ ΠΈΠ·Π²ΠΎΡ€Π½Π΅ Π°Ρ€Ρ…ΠΈΠ²Π΅

Ово јС Ρ‚ΠΎΠΊ Π°ΠΊΡ†ΠΈΡ˜Π΅ Π·Π° Π½ΠΎΠ²ΠΎΠ³ корисника који ΠΆΠ΅Π»ΠΈ Π΄Π° ΠΏΡ€Π΅ΡƒΠ·ΠΌΠ΅ ΠΈ Π΅ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡˆΠ΅ са најновијим издањСм ΠΈ Π²Π΅Ρ€Π·ΠΈΡ˜Π°ΠΌΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π° нс-3. нс-3 издања сС ΠΎΠ±Ρ˜Π°Π²Ρ™ΡƒΡ˜Ρƒ ΠΊΠ°ΠΎ компрСсованС ΠΈΠ·Π²ΠΎΡ€Π½Π΅ Π°Ρ€Ρ…ΠΈΠ²Π΅, којС сС ΠΏΠΎΠ½Π΅ΠΊΠ°Π΄ Π½Π°Π·ΠΈΠ²Π°Ρ˜Ρƒ Ρ‚Π°Ρ€Π±Π°Π»Π». Ρ‚Π°Ρ€Π±Π°Π»Π» јС посСбан Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ софтвСрскС Π°Ρ€Ρ…ΠΈΠ²Π΅ Ρƒ којСм сС Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½ΡƒΡ˜Π΅ зајСдно. Архива јС ΠΎΠ±ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°Π½Π°. нс-3 процСс ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° ΠΏΡ€Π΅ΠΊΠΎ Ρ‚Π°Ρ€Π±Π°Π»Π» јС Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ, само Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π°Π±Π΅Ρ€Π΅Ρ‚Π΅ издањС, ΠΏΡ€Π΅ΡƒΠ·ΠΌΠ΅Ρ‚Π΅ Π³Π° ΠΈ Ρ€Π°ΡΠΏΠ°ΠΊΡƒΡ˜Π΅Ρ‚Π΅.

ΠŸΡ€Π΅Ρ‚ΠΏΠΎΡΡ‚Π°Π²ΠΈΠΌΠΎ Π΄Π° Π²ΠΈ, ΠΊΠ°ΠΎ корисник, ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ нс-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 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΏΠ°ΠΆΡšΡƒ Π½Π° Π³ΠΎΡ€Π΅ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅Π½ΠΈ услуТни ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Π²Π³Π΅Ρ‚, који јС Π°Π»Π°Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ ΠΎΠ±Ρ˜Π΅ΠΊΠ°Ρ‚Π° са Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°. Ако Π³Π° нистС инсталирали, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ користити свој ΠΏΡ€Π΅Ρ‚Ρ€Π°ΠΆΠΈΠ²Π°Ρ‡ Π·Π° ΠΎΠ²ΠΎ.

ΠŸΡ€Π°Ρ›Π΅ΡšΠ΅ ΠΎΠ²ΠΈΡ… ΠΊΠΎΡ€Π°ΠΊΠ° ΠΎΠ΄Π²Π΅ΡˆΡ›Π΅ вас Π΄ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° нс-Π°Π»Π»ΠΈΠ½ΠΎΠ½Π΅-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

Π‘Π°Π΄Π° стС спрСмни Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ нс-3 Π±Π°Π·Π½Ρƒ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Ρƒ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅Ρ’Π΅Ρ‚Π΅ Π½Π° ΠΎΠ΄Π΅Ρ™Π°ΠΊ ΠΎ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠΈ нс-3.

3.3 ΠŸΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ нс-3 користСћи Π“ΠΈΡ‚

нс-3 ΠΊΠΎΠ΄ јС доступан Ρƒ Π“ΠΈΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠΈΠΌΠ° Π½Π° Π“ΠΈΡ‚Π›Π°Π±.Ρ†ΠΎΠΌ Π½Π° адрСси https://gitlab.com/nsnam/... Π“Ρ€ΡƒΠΏΠ° нснам ΠΎΠ±Ρ˜Π΅Π΄ΠΈΡšΡƒΡ˜Π΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Π° ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π° која користи ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎΠ³ ΠΊΠΎΠ΄Π°.

Најлакши Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° користитС Π“ΠΈΡ‚ ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π° јС Π΄Π° Ρ€Π°Ρ‡Π²Π°Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Ρ‚Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ΅ нс-3-Π°Π»ΠΈΠ½ΠΎΠ½. Ово јС скуп скрипти који ΡƒΠΏΡ€Π°Π²Ρ™Π° ΡƒΡ‡ΠΈΡ‚Π°Π²Π°ΡšΠ΅ΠΌ ΠΈ склапањСм Π½Π°Ρ˜Ρ‡Π΅ΡˆΡ›Π΅ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅Π½ΠΈΡ… нс-3 подсистСма. Ако стС Π½ΠΎΠ²ΠΈ Ρƒ Π“ΠΈΡ‚Ρƒ, Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈ β€žΡ„ΠΎΡ€ΠΊβ€œ ΠΈ β€žΠΊΠ»ΠΎΠ½β€œ ΠΌΠΎΠΆΠ΄Π° Π²Π°ΠΌ нису ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ; Π°ΠΊΠΎ Ρ˜Π΅ΡΡ‚Π΅, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡƒΡ‡ΡƒΡ˜Π΅ΠΌΠΎ Π²Π°ΠΌ Π΄Π° Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Ρ‚Π΅ (Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ сопствСну ΠΊΠΎΠΏΠΈΡ˜Ρƒ) ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π΅ којС сС Π½Π°Π»Π°Π·ΠΈ Π½Π° Π“ΠΈΡ‚Π›Π°Π±.Ρ†ΠΎΠΌ ΠΎΠ²Π°ΠΊΠΎ:

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

Π£ овој Ρ„Π°Π·ΠΈ, ΠΏΡ€ΠΈΠΊΠ°Π· вашСг ΠΈΠΌΠ΅Π½ΠΈΠΊΠ° нс-3-Π°Π»ΠΈΠ½ΠΎΠ½ ΠΌΠ°Π»ΠΎ Π΄Ρ€ΡƒΠ³Π°Ρ‡ΠΈΡ˜ΠΈ ΠΎΠ΄ Π³ΠΎΡ€Π΅ описаног Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° Π°Ρ€Ρ…ΠΈΠ²Π΅ издања. Π’Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΎΡ‚ΠΏΡ€ΠΈΠ»ΠΈΠΊΠ΅ ΠΎΠ²Π°ΠΊΠΎ:

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

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ скрипта Π΄ΠΎΠ²Π½Π»ΠΎΠ°Π΄.ΠΏΠΈ, који Ρ›Π΅ Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΎ ΠΈΠ·Π΄Π²ΠΎΡ˜ΠΈΡ‚ΠΈ нс-3 ΠΈ ΠΏΡ€Π°Ρ‚Π΅Ρ›ΠΈ ΠΈΠ·Π²ΠΎΡ€Π½ΠΈ ΠΊΠΎΠ΄. ОвдС ΠΈΠΌΠ°Ρ‚Π΅ ΠΈΠ·Π±ΠΎΡ€: ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΡƒΠ·ΠΌΠΈΡ‚Π΅ најновији снимак Ρ€Π°Π·Π²ΠΎΡ˜Π° нс-3:

$ python download.py

ΠΈΠ»ΠΈ вишС Π²ΠΎΠ»ΠΈΡ‚Π΅ нс-3 ΠΎΡΠ»ΠΎΠ±Π°Ρ’Π°ΡšΠ΅ користСћи заставу -n Π΄Π° ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚Π΅ Π±Ρ€ΠΎΡ˜ издања:

$ python download.py -n ns-3.29

Након ΠΎΠ²ΠΎΠ³ ΠΊΠΎΡ€Π°ΠΊΠ° Π΄ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° нс-3-Π°Π»ΠΈΠ½ΠΎΠ½ Π±ΠΈΡ›Π΅ ΠΏΡ€Π΅ΡƒΠ·Π΅Ρ‚Π° Π΄ΠΎΠ΄Π°Ρ‚Π½Π° ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π° нс-3, ΠΏΠ΅Ρ›ΠΈ, ΠΏΠΈΠ±ΠΈΠ½Π΄Π³Π΅Π½ ΠΈ Π½Π΅Ρ‚Π°Π½ΠΈΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ‚ΠΈ
На машини са чистим Π£Π±ΡƒΠ½Ρ‚Ρƒ16.04, ΠΌΠΎΡ€Π°ΠΎ сам Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° ΠΎΠ²Ρƒ: $ sudo python3 download.py -n ns-3.29 (Ρƒ Π΄Π°Ρ™Π΅ΠΌ тСксту Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈΠΎΡ†Π°).

3.3.1 Π£Ρ‡ΠΈΡ‚Π°Π²Π°ΡšΠ΅ нс-3 користСћи Π‘Π°ΠΊΠ΅

Π“ΠΎΡ€ΡšΠ΅ Π΄Π²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ (ΠΈΠ·Π²ΠΎΡ€Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π° ΠΈΠ»ΠΈ ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π΅ нс-3-Π°Π»ΠΈΠ½ΠΎΠ½ ΠΏΡ€Π΅ΠΊΠΎ Π“ΠΈΡ‚Π°) корисни су Π·Π° добијањС Π½Π°Ρ˜Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΡ˜Π΅ ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π΅ нс-3 са вишС Π΄ΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° (ΠΏΠΈΠ±ΠΈΠ½Π΄Π³Π΅Π½ Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡˆΠ΅ ΠŸΠΈΡ‚Ρ…ΠΎΠ½ Π²Π΅Π·Π΅ ΠΈ Π½Π΅Ρ‚Π°Π½ΠΈΠΌ Π·Π° ΠΌΡ€Π΅ΠΆΠ½Ρƒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡ˜Ρƒ). Позива сС Ρ‚Ρ€Π΅Ρ›Π΅ ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π΅ којС јС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Ρ’Π΅Π½ΠΎ Ρƒ нс-3-Π°Π»ΠΈΠ½ΠΎΠ½Ρƒ ΠΏΠ΅Ρ›ΠΈ.

ΠŸΠ΅Ρ†ΠΈΡ‚Π΅ јС Π°Π»Π°Ρ‚ Π·Π° координисану ΠΈΠ·Π³Ρ€Π°Π΄ΡšΡƒ софтвСра ΠΈΠ· вишС ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π°, Ρ€Π°Π·Π²ΠΈΡ˜Π΅Π½ Π·Π° нс-3 ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚. ΠŸΠ΅Ρ†ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ сС користити Π·Π° добијањС Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈΡ… Π²Π΅Ρ€Π·ΠΈΡ˜Π° нс-3, ΠΊΠ°ΠΎ ΠΈ Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ ΠΈ ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ Π΅ΠΊΡΡ‚Π΅Π½Π·ΠΈΡ˜Π° основнС Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ нс-3 Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π΅, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ΅ Π”ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π°ΡšΠ΅ ΠΊΠΎΠ΄Π°, ЦрадлСНСтворк Π‘ΠΈΠΌΡƒΠ»Π°Ρ‚ΠΈΠΎΠ½ Π¦Ρ€Π°Π΄Π»Π΅, могућност ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ° Π½ΠΎΠ²ΠΈΡ… ΠŸΠΈΡ‚Ρ…ΠΎΠ½ Π²Π΅Π·Π° ΠΈ Ρ€Π°Π·Π½ΠΈΡ… нс-3 β€žΠ°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°β€œ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ‚ΠΈ
ЦрадлСНСтворк Π‘ΠΈΠΌΡƒΠ»Π°Ρ‚ΠΈΠΎΠ½ Π¦Ρ€Π°Π΄Π»Π΅ јС ΠΎΠΊΠ²ΠΈΡ€ који Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° користитС ΠΏΡ€Π°Π²Π΅ ВЦП/ИП ΠΌΡ€Π΅ΠΆΠ½Π΅ стСковС ΡƒΠ½ΡƒΡ‚Π°Ρ€ ΠΌΡ€Π΅ΠΆΠ½ΠΎΠ³ симулатора.

Ако ΠΎΡ‡Π΅ΠΊΡƒΡ˜Π΅Ρ‚Π΅ Π΄Π° ваша нс-3 ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π° ΠΈΠΌΠ° Π½Π°ΠΏΡ€Π΅Π΄Π½Π΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ΄Π°Ρ‚Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π°Ρ‚ΠΈΡ‚ΠΈ ΠΎΠ²Ρƒ ΠΏΡƒΡ‚Π°ΡšΡƒ ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π΅.

Π£ најновијим нс-3 издањима ΠŸΠ΅Ρ†ΠΈΡ‚Π΅ јС Π΄ΠΎΠ΄Π°Ρ‚ катранском ΠΈΠ·Π΄Π°ΡšΡƒ. ИздањС ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ која Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° ΠΏΡ€Π΅ΡƒΠ·ΠΌΠ΅Ρ‚Π΅ Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½Π΅ Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ софтвСра Ρƒ Π²Ρ€Π΅ΠΌΠ΅ издавања. Π’ΠΎ јС, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π΅Ρ€Π·ΠΈΡ˜Π° ΠŸΠ΅Ρ†ΠΈΡ‚Π΅, који сС дистрибуира са издањСм нс-3.29, ΠΌΠΎΠΆΠ΅ сС користити Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π·Π° Ρ‚ΠΎ издањС нс-3 ΠΈΠ»ΠΈ Ρ€Π°Π½ΠΈΡ˜Π΅, Π°Π»ΠΈ сС Π½Π΅ ΠΌΠΎΠΆΠ΅ користити Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π·Π° каснија издања (Π°ΠΊΠΎ јС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° описа ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π±Π°ΠΊΠ΅Ρ†ΠΎΠ½Ρ„.ΠΊΠΌΠ» нијС Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ).

Π’Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±ΠΈΡ‚ΠΈ Π½Π°Ρ˜Π½ΠΎΠ²ΠΈΡ˜Ρƒ ΠΊΠΎΠΏΠΈΡ˜Ρƒ пСћиуносом слСдСћС ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρƒ Π²Π°ΡˆΡƒ Π›ΠΈΠ½ΡƒΠΊ ΠΊΠΎΠ½Π·ΠΎΠ»Ρƒ (ΠΏΠΎΠ΄ прСтпоставком Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ инсталиран Π“ΠΈΡ‚):

$ cd 
$ mkdir workspace 
$ cd workspace 
$ git clone https://gitlab.com/nsnam/bake.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

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° стС ΡƒΡ‡ΠΈΡ‚Π°Π»ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠŸΠΈΡ‚Ρ…ΠΎΠ½ скрипти, ΠŸΠΈΡ‚Ρ…ΠΎΠ½ ΠΌΠΎΠ΄ΡƒΠ» ΠΏΠΎΠ΄ Π½Π°Π·ΠΈΠ²ΠΎΠΌ ΠΏΠ΅Ρ›ΠΈ ΠΈ ΠšΠ‘ΠœΠ› ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ. Π‘Π»Π΅Π΄Π΅Ρ›ΠΈ ΠΊΠΎΡ€Π°ΠΊ јС ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ ΠΎΠ²ΠΈΡ… скрипти Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ ΠΈ ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ нс-3 Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π΅ ΠΏΠΎ вашСм ΠΈΠ·Π±ΠΎΡ€Ρƒ. Доступно јС Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Ρ†ΠΈΡ™Π΅Π²Π° ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΡ’Π°Π²Π°ΡšΠ°:

  1. нс-3.29: ΠΌΠΎΠ΄ΡƒΠ» који ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° ΠΈΠ·Π΄Π°ΡšΡƒ; ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°Ρ›Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ сличнС ΠΈΠ·Π΄Π°ΡšΡƒ Ρƒ Ρ‚Π°Ρ€Π±Π°Π»Π»-Ρƒ;

  2. нс-3-Π΄Π΅Π²: сличан ΠΌΠΎΠ΄ΡƒΠ», Π°Π»ΠΈ користСћи ΠΊΠΎΠ΄ ΠΈΠ· Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΎΠ³ стабла;

  3. нс-Π°Π»ΠΈΠ½ΠΎΠ½-3.29: ΠœΠΎΠ΄ΡƒΠ» који ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ Π΄Ρ€ΡƒΠ³Π΅ Π΄ΠΎΠ΄Π°Ρ‚Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ су ΡƒΡΠΌΠ΅Ρ€Π°Π²Π°ΡšΠ΅ ΠΊΠ»ΠΈΠΊΠΎΠ²Π° ΠΈ постољС Π·Π° ΠΌΡ€Π΅ΠΆΠ½Ρƒ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Ρƒ, ΠžΠΏΠ΅Π½Ρ„Π»ΠΎΠ² Π·Π° нс-3.

  4. нс-3-Π°Π»ΠΈΠ½ΠΎΠ½: слично изданој Π²Π΅Ρ€Π·ΠΈΡ˜ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π° ΡƒΡ†Π΅Π»ΠΎ, Π°Π»ΠΈ Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈ ΠΊΠΎΠ΄.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ‚ΠΈ
Kliknite β€” ΠΌΠΎΠ΄ΡƒΠ»Π°Ρ€Π½Π° софтвСрска Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π·Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Ρ€ΡƒΡ‚Π΅Ρ€Π°.

ΠžΠΏΠ΅Π½Ρ„Π»ΠΎΠ² јС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ΅ процСсом ΠΎΠ±Ρ€Π°Π΄Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° који сС прСносС ΠΏΡ€Π΅ΠΊΠΎ ΠΌΡ€Π΅ΠΆΠ΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΏΡƒΡ‚Π΅ΠΌ Ρ€ΡƒΡ‚Π΅Ρ€Π° ΠΈ свичСва, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ˜ΡƒΡ›ΠΈ софтвСрски дСфинисану ΠΌΡ€Π΅ΠΆΠ½Ρƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Ρƒ.

Π’Ρ€Π΅Π½ΡƒΡ‚Π½ΠΈ Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈ снимак (Π±Π΅Π· издања) нс-3 сС ΠΌΠΎΠΆΠ΅ Π½Π°Ρ›ΠΈ Π½Π°:https://gitlab.com/nsnam/ns-3-dev.git.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ ΠΏΠΎΠΊΡƒΡˆΠ°Π²Π°Ρ˜Ρƒ Π΄Π° ΠΎΠ²Π° ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π° ΠΎΠ΄Ρ€ΠΆΠ°Π²Π°Ρ˜Ρƒ Ρƒ дослСдном Ρ€Π°Π΄Π½ΠΎΠΌ Ρ€Π΅Π΄Ρƒ, Π°Π»ΠΈ ΠΎΠ½Π° су Ρƒ области Ρ€Π°Π·Π²ΠΎΡ˜Π° ΠΈ садрТС Π½Π΅ΠΎΠ±Ρ˜Π°Π²Ρ™Π΅Π½ΠΈ ΠΊΠΎΠ΄, Ρ‚Π°ΠΊΠΎ Π΄Π° Π°ΠΊΠΎ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚Π΅ Π΄Π° користитС Π½ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅, ΠΈΠ·Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π·Π²Π°Π½ΠΈΡ‡Π½ΠΎ издањС.

ΠΠ°Ρ˜Π½ΠΎΠ²ΠΈΡ˜Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ½Π°Ρ›ΠΈ Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅Ρ‚Π΅ ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°Ρ‚ΠΈ листу ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π° ΠΈΠ»ΠΈ ΠΎΡ‚ΠΈΡ›ΠΈ Π½Π° Π²Π΅Π± страницу нс-3 РСлСасСс:https://www.nsnam.org/releases/ ΠΈ ΠΊΠ»ΠΈΠΊΠΎΠΌ Π½Π° Π²Π΅Π·Ρƒ најновијС Π²Π΅Ρ€Π·ΠΈΡ˜Π΅. Π£ ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ наставићСмо са нс-3.29.

Π‘Π°Π΄Π°, Π΄Π° бисмо Π΄ΠΎΠ±ΠΈΠ»ΠΈ нс-3 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ којС су Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π΅, користићСмо Π°Π»Π°Ρ‚ΠΊΡƒ ΠŸΠ΅Ρ†ΠΈΡ‚Π΅. Π Π΅Ρ†ΠΈΠΌΠΎ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΡƒΠ²ΠΎΠ΄Π½ΠΈΡ… Ρ€Π΅Ρ‡ΠΈ ΠΎ Π΄Π΅Π»Ρƒ ΠŸΠ΅Ρ†ΠΈΡ‚Π΅.

Π‘Π°ΠΊΠ΅ Ρ€Π°Π΄ΠΈ Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ ΡƒΡ‡ΠΈΡ‚Π°Π²Π° ΠΈΠ·Π²ΠΎΡ€Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ ΠΈΠ·Π²ΠΎΡ€ ΠΈ ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρƒ Π±ΡƒΠΈΠ»Π΄ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ. ΠŸΠ΅Ρ†ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ сС ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ позивањСм Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°Ρ˜Π», Π°Π»ΠΈ Π°ΠΊΠΎ ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ ΠŸΠ΅Ρ†ΠΈΡ‚Π΅ Π½Π΅ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° Ρƒ β€‹β€‹ΠΊΠΎΡ˜ΠΈ јС ΠΏΡ€Π΅ΡƒΠ·Π΅Ρ‚ΠΎ, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡƒΡ‡Ρ™ΠΈΠ²ΠΎ јС Π΄ΠΎΠ΄Π°Ρ‚ΠΈ ΠΏΡƒΡ‚Π°ΡšΡƒ Π΄ΠΎ ΠΏΠ΅Ρ›ΠΈ Π΄ΠΎ вашС ΠΏΡƒΡ‚Π°ΡšΠ΅ (ПАВΠ₯ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π° ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ°), Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° слСдСћи Π½Π°Ρ‡ΠΈΠ½ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Π›ΠΈΠ½ΡƒΠΊ басх схСлл). Π˜Π΄ΠΈΡ‚Π΅ Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ β€žΠ±Π°ΠΊΠ΅β€œ, Π° Π·Π°Ρ‚ΠΈΠΌ подСситС слСдСћС ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ°:

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

Ово Ρ›Π΅ поставити ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Π±Π°ΠΊΠ΅.ΠΏΠΈ Π½Π° ΠΏΡƒΡ‚Π°ΡšΡƒ љускС ΠΈ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ›Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΠΌΠ° Π΄Π° ΠΏΡ€ΠΎΠ½Π°Ρ’Ρƒ ΠΈΠ·Π²Ρ€ΡˆΠ½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ којС јС ΠΊΡ€Π΅ΠΈΡ€Π°ΠΎ ΠΏΠ΅Ρ›ΠΈ. Π£ Π½Π΅ΠΊΠΈΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈΠΌΠ° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ ΠΏΠ΅Ρ›ΠΈ, Π³ΠΎΡ€Π΅ описана подСшавања ПАВΠ₯ ΠΈ ПИВΠ₯ОНПАВΠ₯ нису ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π°, Π°Π»ΠΈ Ρ‚ΠΎ ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π·Π°Ρ…Ρ‚Π΅Π²Π° ΠΏΠΎΡ‚ΠΏΡƒΠ½Π° ΠΈΠ·Ρ€Π°Π΄Π° нс-3-Π°Π»ΠΈΠ½ΠΎΠ½Π° (са Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΠΌΠ°).

Π˜Π΄ΠΈΡ‚Π΅ Ρƒ свој Ρ€Π°Π΄Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ ΠΈ унСситС слСдСћС Ρƒ ΠΊΠΎΠ½Π·ΠΎΠ»Ρƒ:

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

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ, Π°Π»Π°Ρ‚ΠΈ Π·Π° ΠΎΡ‚ΠΏΡ€Π΅ΠΌΠ°ΡšΠ΅ ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ су ΠœΠ΅Ρ€Ρ†ΡƒΡ€ΠΈΠ°Π», Π¦Π’Π‘, Π“ΠΈΡ‚ ΠΈ Π‘Π°Π·Π°Π°Ρ€ су Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΈ Ρƒ ΠΎΠ²ΠΎΠΌ ΠΊΠΎΡ€Π°ΠΊΡƒ Ρ˜Π΅Ρ€ Π½Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°Ρ˜Ρƒ Π΄Π° добијСмо ΠΊΠΎΠ΄. Π£ ΠΎΠ²ΠΎΠΌ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ, ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π°Π»Π°Ρ‚Π΅ који Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ˜Ρƒ Π½Π° ΡƒΠΎΠ±ΠΈΡ‡Π°Ρ˜Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° ваш систСм (Π°ΠΊΠΎ Π·Π½Π°Ρ‚Π΅ ΠΊΠ°ΠΊΠΎ) ΠΈΠ»ΠΈ сС ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ администратору систСма Π·Π° ΠΏΠΎΠΌΠΎΡ›.

Π—Π°Ρ‚ΠΈΠΌ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅ΡƒΠ·ΠΌΠ΅Ρ‚Π΅ софтвСр:

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

Π’ΠΎ Ρ›Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚ΠΈ Π΄Π° су ΠΏΡ€Π΅ΡƒΠ·Π΅Ρ‚Π° Ρ‚Ρ€ΠΈ ΠΈΠ·Π²ΠΎΡ€Π°. Π‘Π°Π΄Π° ΠΈΠ΄ΠΈΡ‚Π΅ Ρƒ ΠΈΠ·Π²ΠΎΡ€Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ ΠΈ ΠΎΡ‚ΠΊΡƒΡ†Π°Ρ˜Ρ‚Π΅ лс; Π’Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅:

$ cd source 
$ ls
netanim-3.108 ns-3.29 pybindgen

Π‘Π°Π΄Π° стС спрСмни Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ нс-3 Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Ρƒ.

3.4 ΠœΠΎΠ½Ρ‚Π°ΠΆΠ° нс-3

Као ΠΈ ΠΊΠΎΠ΄ ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ° нс-3, ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ нс-3. Π“Π»Π°Π²Π½Π° ствар ΠΊΠΎΡ˜Ρƒ ΠΆΠ΅Π»ΠΈΠΌΠΎ Π΄Π° нагласимо јС Π΄Π° јС нс-3 Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½ ΠΏΠΎΠΌΠΎΡ›Ρƒ Π°Π»Π°Ρ‚Π° Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ Ρ‚Π·Π² Вафописано испод. Π’Π΅Ρ›ΠΈΠ½Π° корисника Ρ›Π΅ Ρ€Π°Π΄ΠΈΡ‚ΠΈ са Π’Π°Ρ„, Π°Π»ΠΈ ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π·Π³ΠΎΠ΄Π½ΠΈΡ… скрипти којС Ρ›Π΅ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ›ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡ˜Π΅Ρ‚Π΅ слоТСнијС ΠΈΠ·Ρ€Π°Π΄Π΅. Π—Π°Ρ‚ΠΎ вас ΠΌΠΎΠ»ΠΈΠΌ, ΠΏΡ€Π΅ Π½Π΅Π³ΠΎ ΡˆΡ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅ ΠΎ Π’Π°Ρ„, ПоглСдај Π±ΡƒΠΈΠ»Π΄.ΠΏΠΈ ΠΈ ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ° са ΠΏΠ΅Ρ›ΠΈ.

3.4.1 Π˜Π·Π³Ρ€Π°Π΄ΡšΠ° са Π±ΡƒΠΈΠ»Π΄.ΠΏΠΈ

Π£ΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ΅! Овај ΠΊΠΎΡ€Π°ΠΊ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅ јС доступан само ΠΈΠ· ΠΈΠ·Π²ΠΎΡ€Π½Π΅ архивскС Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ добијСнС ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС Π³ΠΎΡ€Π΅ описано; Π° Π½Π΅ ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ° сС ΠΏΡƒΡ‚Π΅ΠΌ Π³ΠΈΡ‚-Π° ΠΈΠ»ΠΈ Π±Π°ΠΊΠ΅-Π°.

Када Ρ€Π°Π΄ΠΈΡ‚Π΅ са Π°Ρ€Ρ…ΠΈΠ²ΠΎΠΌ издања Ρ‚Π°Ρ€Π±Π°Π»Π»Π£ нс-3-Π°Π»ΠΈΠ½ΠΎΠ½ ΠŸΠΎΡΡ‚ΠΎΡ˜ΠΈ Π·Π³ΠΎΠ΄Π½Π° скрипта која ΠΌΠΎΠΆΠ΅ ΠΎΠ»Π°ΠΊΡˆΠ°Ρ‚ΠΈ ΡΠ°ΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. Π—ΠΎΠ²Π΅ сС Π±ΡƒΠΈΠ»Π΄.ΠΏΠΈ. Овај ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Ρ›Π΅ поставити ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ Π·Π° вас Π½Π° Π½Π°Ρ˜ΠΊΠΎΡ€ΠΈΡΠ½ΠΈΡ˜ΠΈ Π½Π°Ρ‡ΠΈΠ½. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΠΈΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° Π½Π°ΠΏΡ€Π΅Π΄Π½ΠΈΡ˜Π΅ подСшавањС ΠΈ Ρ€Π°Π΄ са нс-3 ΠΎΠ±ΠΈΡ‡Π½ΠΎ ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ нс-3 сопствСног систСма ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅, Π’Π°Ρ„, који Ρ›Π΅ Π±ΠΈΡ‚ΠΈ прСдстављСн каснијС Ρƒ ΠΎΠ²ΠΎΠΌ Π²ΠΎΠ΄ΠΈΡ‡Ρƒ.

Ако стС ΠΏΡ€Π΅ΡƒΠ·Π΅Π»ΠΈ користСћи Ρ‚Π°Ρ€Π±Π°Π»Π», Π° Π·Π°Ρ‚ΠΈΠΌ Ρƒ вашСм ΠΈΠΌΠ΅Π½ΠΈΠΊΡƒ ~/Ρ€Π°Π΄Π½ΠΈ простор Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ са ΠΈΠΌΠ΅Π½ΠΎΠΌ Π½Π΅ΡˆΡ‚ΠΎ ΠΏΠΎΠΏΡƒΡ‚ нс-Π°Π»ΠΈΠ½ΠΎΠ½-3.29. УнСситС слСдСћС:

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

Када сС Π·ΠΎΠ²Π΅ Π±ΡƒΠΈΠ»Π΄.ΠΏΠΈ ΠšΠΎΡ€ΠΈΡΡ‚ΠΈΠ»ΠΈ смо Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Π΄Π° бисмо Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈ тСстовС који сС користС Ρƒ ΠΎΠ²ΠΎΠΌ Π²ΠΎΠ΄ΠΈΡ‡Ρƒ, Π° који нису ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½ΠΈ Ρƒ нс-3. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Ρ‚Π°ΠΊΠΎΡ’Π΅ Π³Ρ€Π°Π΄ΠΈ свС доступнС ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π—Π°Ρ‚ΠΈΠΌ, Π°ΠΊΠΎ ΠΆΠ΅Π»ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ нс-3 Π±Π΅Π· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈ тСстова, ΠΈΠ»ΠΈ Π΄Π° искључитС ΠΌΠΎΠ΄ΡƒΠ»Π΅ који Π²Π°ΠΌ нису ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π·Π° Ρ€Π°Π΄.

Π’ΠΈΠ΄Π΅Ρ›Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π»Π°Π·Π½ΠΈΡ… ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€Π° којС ΠΏΡ€ΠΈΠΊΠ°Π·ΡƒΡ˜Π΅ скрипта Π΄ΠΎΠΊ Π³Ρ€Π°Π΄ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Π΅ Π΄Π΅Π»ΠΎΠ²Π΅ којС стС ΡƒΡ‡ΠΈΡ‚Π°Π»ΠΈ. ΠŸΡ€Π²ΠΎ Ρ›Π΅ сцСнарио ΠΏΠΎΠΊΡƒΡˆΠ°Ρ‚ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π°Π½ΠΈΠΌΠ°Ρ‚ΠΎΡ€Π° Π½Π΅Ρ‚Π°Π½ΠΈΠΌ, Π·Π°Ρ‚ΠΈΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ вСзивања ΠΏΠΈΠ±ΠΈΠ½Π΄Π³Π΅Π½ ΠΈ Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ нс-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

Π’ΠΎ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ Π·Π½Π°Ρ‡ΠΈ Π΄Π° Π½Π΅ΠΊΠΈ нс-3 ΠΌΠΎΠ΄ΡƒΠ»ΠΈ који зависС ΠΎΠ΄ СкстСрних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΄Π° нису ΠΈΠ·Π³Ρ€Π°Ρ’Π΅Π½ΠΈ ΠΈΠ»ΠΈ Π΄Π° нису ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π΄Π° Π±ΡƒΠ΄Ρƒ ΠΈΠ·Π³Ρ€Π°Ρ’Π΅Π½ΠΈ Π·Π° ΠΎΠ²Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ. Π’ΠΎ Π½Π΅ Π·Π½Π°Ρ‡ΠΈ Π΄Π° симулатор нијС састављСн ΠΈΠ»ΠΈ Π΄Π° склопљСни ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π΅Ρ›Π΅ Ρ€Π°Π΄ΠΈΡ‚ΠΈ исправно.

3.4.2 Π˜Π·Π³Ρ€Π°Π΄ΡšΠ° са Π‘Π°ΠΊΠ΅

Ако стС користили Π±Π°ΠΊΠ΅ ΠΈΠ·Π½Π°Π΄ Π΄Π° бистС Π΄ΠΎΠ±ΠΈΠ»ΠΈ ΠΈΠ·Π²ΠΎΡ€Π½ΠΈ ΠΊΠΎΠ΄ ΠΈΠ· ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ наставити Π΄Π° Π³Π° користитС Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ нс-3. ΠŸΠΎΠ·ΠΎΠ²ΠΈΡ‚Π΅:

$ ./bake.py build

ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π΅ΡˆΡ‚ΠΎ ΠΏΠΎΠΏΡƒΡ‚:

>> Building pybindgen-0.19.0.post4+ng823d8b2 - OK 
>> Building netanim-3.108 - OK 
>> Building ns-3.29 - OK

Π’ΠΎΠΎΠ»Ρ‚ΠΈΠΏ: Π’Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ истоврСмСно Π΄Π° ΡƒΡ€Π°Π΄ΠΈΡ‚Π΅ ΠΈ ΠΊΠΎΡ€Π°ΠΊΠ΅ ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ° ΠΈ ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ° Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅Ρ‚Π΅ ΠΏΠΎΠ·Π²Π°Ρ‚ΠΈ β€žΠ±Π°ΠΊΠ΅.ΠΏΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈβ€œ.

БклапањС свих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΌΠΎΠΆΠ΄Π° Π½Π΅Ρ›Π΅ успСти, Π°Π»ΠΈ ΡΠ°ΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ Ρ›Π΅ сС наставити Π°ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° нијС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎ јС Π±ΠΈΠ»ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠΈΡ‚Π°ΡšΠ΅ прСносивости цасткмл ΠΌΠΎΠΆΠ΅ сС саставити ΠΏΠΎΠΌΠΎΡ›Ρƒ Π°Π»Π°Ρ‚Π° ΠΏΠ΅Ρ›ΠΈ Π½Π΅ Π½Π° свим ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠ°. Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ Ρ›Π΅ сС ΠΏΠΎΡ˜Π°Π²ΠΈΡ‚ΠΈ ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΏΠΎΠΏΡƒΡ‚ ΠΎΠ²Π΅:

>> 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.

Али цасткмл ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ само Π°ΠΊΠΎ ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½Π΅ ΠŸΠΈΡ‚Ρ…ΠΎΠ½ Π²Π΅Π·Π΅. Π—Π° Π²Π΅Ρ›ΠΈΠ½Ρƒ корисника Π·Π° ΠΎΠ²ΠΈΠΌ Π½Π΅ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ (Π±Π°Ρ€ Π΄ΠΎΠΊ Π½Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ нс-3), ΠΏΠ° сС Ρ‚Π°ΠΊΠ²Π° ΡƒΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ° Π·Π° сада ΠΌΠΎΠ³Ρƒ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎ игнорисати.

Ако Π½Π΅ успС, слСдСћа ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ›Π΅ Π²Π°ΠΌ Π΄Π°Ρ‚ΠΈ Π½Π°Π³ΠΎΠ²Π΅ΡˆΡ‚Π°Ρ˜ ΠΎ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ˜ΡƒΡ›ΠΈΠΌ зависностима:

$ ./bake.py show

Π‘ΠΈΡ›Π΅ Π½Π°Π²Π΅Π΄Π΅Π½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Π΅ зависности ΠΏΠ°ΠΊΠ΅Ρ‚Π° којС ΠΏΠΎΠΊΡƒΡˆΠ°Π²Π°Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅.

3.4.3 Направи са Π’Π°Ρ„-ΠΎΠΌ

Π”ΠΎ ΠΎΠ²Π΅ Ρ‚Π°Ρ‡ΠΊΠ΅, Π΄Π° бисмо ΠΏΠΎΡ‡Π΅Π»ΠΈ Π΄Π° Π³Ρ€Π°Π΄ΠΈΠΌΠΎ нс-3, користили смо ΠΈΠ»ΠΈ скрипту Π±ΡƒΠΈΠ»Π΄.ΠΏΠΈ, ΠΈΠ»ΠΈ Π°Π»Π°Ρ‚ ΠΏΠ΅Ρ›ΠΈ. Ови Π°Π»Π°Ρ‚ΠΈ су корисни Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ нс-3 ΠΈ ΠΎΠ΄Ρ€ΠΆΠ°Π²Π°ΡšΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Π£ ствари, Π΄Π° Π±ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ, ΠΏΠΎΠΊΡ€Π΅Ρ›Ρƒ Π°Π»Π°Ρ‚ Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ Π’Π°Ρ„ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° нс-3. Π’Π°Ρ„ инсталиран са нс-3 ΠΈΠ·Π²ΠΎΡ€Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π’Π΅Ρ›ΠΈΠ½Π° корисника Π±Ρ€Π·ΠΎ ΠΏΡ€Π΅Π»Π°Π·ΠΈ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½Ρƒ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Ρƒ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡΠ°ΡšΠ΅ ΠΈ склапањС нс‑3 Π’Π°Ρ„. Π”Π°ΠΊΠ»Π΅, Π΄Π° бистС наставили, ΠΈΠ΄ΠΈΡ‚Π΅ Ρƒ нс-3 Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ који стС ΠΏΡ€Π²ΠΎΠ±ΠΈΡ‚Π½ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°Π»ΠΈ.

Ово Ρƒ ΠΎΠ²ΠΎΠΌ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ нијС стриктно ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ, Π°Π»ΠΈ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ корисно Π΄Π° сС ΠΌΠ°Π»ΠΎ Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ ΡƒΠ½Π°Π·Π°Π΄ ΠΈ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΈ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π°. Π’Π΅Ρ€ΠΎΠ²Π°Ρ‚Π½ΠΎ Π½Π°Ρ˜ΠΊΠΎΡ€ΠΈΡΠ½ΠΈΡ˜Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π΅ ΠΊΠΎΡ˜Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ јС Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ ΠΊΠΎΠ΄Π°. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ стС конфигурисали свој ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°. Π₯ајдС Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π°ΠΌΠΎ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ Π·Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π΅. Π”Π° бистС објаснили Π’Π°Ρ„-Ρƒ Π΄Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½Π΅ Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ којС ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈ тСстовС, ΠΌΠΎΡ€Π°Ρ›Π΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ слСдСћС ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

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

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΏΠ°ΠΆΡšΡƒ Π½Π° послСдњи Π΄Π΅ΠΎ листС ΠΈΠ·Π½Π°Π΄. НСкС нс-3 ΠΎΠΏΡ†ΠΈΡ˜Π΅ нису ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ ΠΎΠΌΠΎΠ³ΡƒΡ›Π΅Π½Π΅ ΠΈΠ»ΠΈ ΠΈΠΌ јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° систСмска ΠΏΠΎΠ΄Ρ€ΡˆΠΊΠ° Π΄Π° Π±ΠΈ исправно функционисалС. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° бистС ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΠ»ΠΈ КсмлВо, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΡ€Π° Π±ΠΈΡ‚ΠΈ присутна Π½Π° систСму Π»ΠΈΠ±ΠΊΠΌΠ»-2.0. Ако ΠΎΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° нијС ΠΏΡ€ΠΎΠ½Π°Ρ’Π΅Π½Π° ΠΈ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›Π° нс-3 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° нијС ΠΎΠΌΠΎΠ³ΡƒΡ›Π΅Π½Π°, Π±ΠΈΡ›Π΅ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½Π° ΠΏΠΎΡ€ΡƒΠΊΠ°. Π’Π°ΠΊΠΎΡ’Π΅ ΠΈΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° јС ΠΌΠΎΠ³ΡƒΡ›Π΅ користити ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ судо Π΄Π° бистС подСсили суид Π±ΠΈΡ‚ β€žΠΏΠΎΠ΄Π΅ΡΠΈΡ‚Π΅ Π˜Π” Π³Ρ€ΡƒΠΏΠ΅ Ρƒ Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠ·Π²ΠΎΡ’Π΅ΡšΠ°β€œ Π·Π° ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ нијС ΠΎΠΌΠΎΠ³ΡƒΡ›Π΅Π½Π° ΠΈ стога сС ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° ΠΏΠΎΡ˜Π°Π²Ρ™ΡƒΡ˜Π΅ ΠΊΠ°ΠΎ β€žΠ½ΠΈΡ˜Π΅ ΠΎΠΌΠΎΠ³ΡƒΡ›Π΅Π½Π°β€œ. На ΠΊΡ€Π°Ρ˜Ρƒ, Π΄Π° бистС Π΄ΠΎΠ±ΠΈΠ»ΠΈ листу ΠΎΠΌΠΎΠ³ΡƒΡ›Π΅Π½ΠΈΡ… ΠΎΠΏΡ†ΠΈΡ˜Π°, користитС Π’Π°Ρ„ са ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ --check-config.

Π’Ρ€Π°Ρ‚ΠΈΠΌΠΎ сС сада ΠΈ Π²Ρ€Π°Ρ‚ΠΈΠΌΠΎ сС Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° која садрТи ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈ тСстовС.

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

БистСм ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅ јС сада постављСн ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° нс-3 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΠΌ ΡƒΠΏΠΈΡΠΈΠ²Π°ΡšΠ΅ΠΌ:

$ ./waf

Π“ΠΎΡ€Π΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ ΠΊΠΎΡ€Π°Ρ†ΠΈ су вас ΠΌΠΎΠΆΠ΄Π° Π½Π°Ρ‚Π΅Ρ€Π°Π»ΠΈ Π΄Π° Π΄Π²Π° ΠΏΡƒΡ‚Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π΄Π΅ΠΎ нс-3 систСма, Π°Π»ΠΈ сада Π·Π½Π°Ρ‚Π΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½ΠΈ ΠΊΠΎΠ΄.

Π”Π° бистС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ који ΠΏΡ€ΠΎΡ„ΠΈΠ» јС Π°ΠΊΡ‚ΠΈΠ²Π°Π½ Π·Π° Π΄Π°Ρ‚Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π°, ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°:

$ ./waf --check-profile 
Waf: Entering directory `/path/to/ns-3-allinone/ns-3.29/build' 
Build profile: debug

Π“ΠΎΡ€Π΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ сцСнарио Π±ΡƒΠΈΠ»Π΄.ΠΏΠΈ Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ --enable-examples ΠΈ --enable-tests, Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π΅ Π’Π°Ρ„ Π½Π΅ ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π²Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ²ΠΎ Π½Π΅Ρ›Π΅ Ρ€Π°Π΄ΠΈΡ‚ΠΈ:

$ ./build.py --disable-python

Ρ€Π΅Π°ΠΊΡ†ΠΈΡ˜Π° Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΎΠ²Π°ΠΊΠ²Π°:

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

ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ -- ΠΌΠΎΠΆΠ΅ сС користити Π·Π° ΠΏΡ€ΠΎΡΠ»Π΅Ρ’ΠΈΠ²Π°ΡšΠ΅ Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€Π° ΠΏΡƒΡ‚Π΅ΠΌ ВАЀтако Π΄Π° Ρ›Π΅ умСсто Π³ΠΎΡ€Π΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ Ρ€Π°Π΄ΠΈΡ‚ΠΈ слСдСћа ΠΊΠΎΠΌΠ°Π½Π΄Π°:

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

Ρ˜Π΅Ρ€ Π³Π΅Π½Π΅Ρ€ΠΈΡˆΠ΅ Π³Π»Π°Π²Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ./Π²Π°Ρ„ Ρ†ΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π΅ --дисаблС-ΠΏΠΈΡ‚Ρ…ΠΎΠ½. Π•Π²ΠΎ још Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΡƒΠ²ΠΎΠ΄Π½ΠΈΡ… савСта ΠΎ Π’Π°Ρ„.

Π ΡƒΠΊΠΎΠ²Π°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠΊΠ°ΠΌΠ° Ρƒ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠΈ

нс-3 издања су тСстирана Π½Π° најновијим Π¦++ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΈΠΌΠ° доступним Ρƒ Π²Ρ€Π΅ΠΌΠ΅ ΠΎΠ±Ρ˜Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ° Π½Π° ΡƒΠΎΠ±ΠΈΡ‡Π°Ρ˜Π΅Π½ΠΈΠΌ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π°ΠΌΠ° Π›ΠΈΠ½ΡƒΠΊΠ° ΠΈ ΠœΠ°Ρ†ΠžΠ‘-Π°. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, Ρ‚ΠΎΠΊΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, Π½ΠΎΠ²Π΅ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π΅ сС ΠΎΠ±Ρ˜Π°Π²Ρ™ΡƒΡ˜Ρƒ са Π½ΠΎΠ²ΠΈΠΌ ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈΠΎΡ†ΠΈΠΌΠ°, Π° ΠΎΠ²ΠΈ новији ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΈ ΠΈΠΌΠ°Ρ˜Ρƒ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡ˜Ρƒ Π΄Π° Π±ΡƒΠ΄Ρƒ ΠΏΠ΅Π΄Π°Π½Ρ‚ΠΈΡ‡Π½ΠΈΡ˜ΠΈ Ρƒ Π²Π΅Π·ΠΈ са ΡƒΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠΈΠΌΠ°. нс-3 ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅ ΡΠ²ΠΎΡ˜Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ Ρ‚Π°ΠΊΠΎ Π΄Π° сва ΡƒΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ° Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π° ΠΊΠ°ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ΅, Ρ‚Π°ΠΊΠΎ Π΄Π° ΠΏΠΎΠ½Π΅ΠΊΠ°Π΄ Π°ΠΊΠΎ користитС ΡΡ‚Π°Ρ€ΠΈΡ˜Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ Π½Π° новијСм систСму, ΡƒΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ΅ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅ зауставити ΠΈΠ·Π³Ρ€Π°Π΄ΡšΡƒ.

На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π½ΠΈΡ˜Π΅ јС Π±ΠΈΠ»ΠΎ издањС нс‑3.28 Π·Π° Π€Π΅Π΄ΠΎΡ€Π° 28, којС јС ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠ²Π°Π»ΠΎ Π½ΠΎΠ²Ρƒ Π³Π»Π°Π²Π½Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ Π“Π¦Π¦ (Π³Ρ†Ρ†-8). ΠŸΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ° издања нс-3.28 ΠΈΠ»ΠΈ ΡΡ‚Π°Ρ€ΠΈΡ˜ΠΈΡ… Π²Π΅Ρ€Π·ΠΈΡ˜Π° ΠΏΠΎΠ΄ Π€Π΅Π΄ΠΎΡ€Π° 28, са инсталираним Π“Ρ‚ΠΊ2+, ΠΏΠΎΡ˜Π°Π²ΠΈΡ›Π΅ сС слСдСћа Π³Ρ€Π΅ΡˆΠΊΠ°:

/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:59:8: error: unnecessary parentheses ,!in declaration of β€˜__gtk_reserved1’ [-Werror=parentheses] void (*__gtk_reserved1);

Π£ издањима која ΠΏΠΎΡ‡ΠΈΡšΡƒ ΠΎΠ΄ нс‑3.28.1, ΠΈΠ½ Π’Π°Ρ„ доступна јС ΠΎΠΏΡ†ΠΈΡ˜Π° Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ ΠΎΠ²ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠžΠ½Π΅ΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ ΠΎΠ·Π½Π°ΠΊΠ΅ "-Π’Π΅Ρ€Ρ€ΠΎΡ€" Ρƒ Π³++ ΠΈ Ρ†Π»Π°Π½Π³++. Ово јС ΠΎΠΏΡ†ΠΈΡ˜Π° "--дисаблС-Π²Π΅Ρ€Ρ€ΠΎΡ€" ΠΈ ΠΌΠΎΡ€Π° сС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΠΈ Ρ‚ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π΅:

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

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠΈΡ‚Π΅ ΠΈΠ»ΠΈ саставитС

НСкС ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π’Π°Ρ„ ΠΈΠΌΠ°Ρ˜Ρƒ смисла само Ρƒ Ρ„Π°Π·ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π΅, Π° Π½Π΅ΠΊΠΈ су Π²Π°ΠΆΠ΅Ρ›ΠΈ само Ρƒ Ρ„Π°Π·ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° користитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ Π΅ΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ нс-3, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ подСшавањС Π±ΠΈΡ‚Π° Π‘ΡƒΠΈΠ΄ ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ›ΠΈ судо, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС Π³ΠΎΡ€Π΅ описано. Ово Ρ›Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ„Π°Π·Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π΅, ΠΈ стога ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ користСћи слСдСћу ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, која Ρ‚Π°ΠΊΠΎΡ’Π΅ ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈ тСстовС.

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

Ако ΡƒΡ€Π°Π΄ΠΈΡ‚Π΅ ΠΎΠ²ΠΎ Π’Π°Ρ„ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ›Π΅ судода ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅ Π·Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ сокСта Π·Π° Π΅ΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Ρƒ Ρ‚Π°ΠΊΠΎ Π΄Π° сС ΠΏΠΎΠΊΡ€Π΅Ρ›Ρƒ са Π΄ΠΎΠ·Π²ΠΎΠ»Π°ΠΌΠ° ΠΊΠΎΡ€Π΅Π½. Π£ Π’Π°Ρ„ ΠŸΠΎΡΡ‚ΠΎΡ˜ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… доступних ΠΎΠΏΡ†ΠΈΡ˜Π° Π·Π° ΠΊΠΎΡ€Π°ΠΊΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π΅ ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅. Π”Π° бистС истраТили својС ΠΎΠΏΡ†ΠΈΡ˜Π΅, унСситС:

$ ./waf --help

Π£ слСдСћСм ΠΎΠ΄Π΅Ρ™ΠΊΡƒ користићСмо Π½Π΅ΠΊΠ΅ ΠΎΠΏΡ†ΠΈΡ˜Π΅ Π²Π΅Π·Π°Π½Π΅ Π·Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅.

ΠœΠΎΠ½Ρ‚Π°ΠΆΠ½ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ

Π’Π΅Ρ› смо Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅Ρ‚Π΅ Π’Π°Ρ„ Π·Π° ΡΠΊΡƒΠΏΡˆΡ‚ΠΈΠ½Π΅ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΠΈ нСисправност ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½ΠΎ:

$ ./waf --build-profile=debug

ΠŸΠΎΡΡ‚ΠΎΡ˜ΠΈ ΠΈ ΡΡ€Π΅Π΄ΡšΠΈ ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ½ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ», отпуститС. ΠžΠΏΡ†ΠΈΡ˜Π° -d јС синоним Π·Π° --build-profile. ΠŸΡ€ΠΎΡ„ΠΈΠ» ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡˆΠ΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Ρƒ логовања, Ρ‚Π²Ρ€Π΄ΡšΠΈ ΠΈ ΠΏΡ€Π΅ΠΊΠΈΠ΄Π°Ρ‡Π° Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€Π°:

Π’ΠΎΠ΄ΠΈΡ‡ Π·Π° симулатор ΠΌΡ€Π΅ΠΆΠ΅ нс-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

ΠšΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΈ ΠΈ заставицС

Π£ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈΠΌΠ° Π’Π°Ρ„ Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ нс-3 користи сС Π¦++ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ ΠΈΠ· Π“Π¦Π¦ ( Π³ ++). ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚ΠΈ онај који користитС Π’Π°Ρ„ Π¦++ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡΠ°ΡšΠ΅ΠΌ ЦКБКБ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° користитС Π¦++ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ Π¦Π»Π°Π½Π³, Ρ†Π»Π°Π½Π³++,

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

На исти Π½Π°Ρ‡ΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ конфигурисати Π’Π°Ρ„ Π΄Π° користитС дистрибуирану ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Ρƒ користСћи дистцц:

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

Π’ΠΈΡˆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΎ дистцц ΠΈ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΠΈΡ€Π°Π½ΠΎΡ˜ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ½Π°Ρ›ΠΈ Π½Π° страници ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π° Ρƒ ΠΎΠ΄Π΅Ρ™ΠΊΡƒ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°. Π”Π° бистС Π΄ΠΎΠ΄Π°Π»ΠΈ заставицС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€Π° ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡΠ°ΡšΠ° нс-3, користитС ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° Π¦ΠšΠ‘ΠšΠ‘Π€Π›ΠΠ“Π‘_Π•ΠšΠ‘Π’Π Π.

Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π°

Π’Π°Ρ„ ΠΌΠΎΠΆΠ΅ сС користити Π·Π° ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΠΌ мСстима Ρƒ систСму. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ, ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠ½ΠΈ Ρ„Π°Ρ˜Π»ΠΎΠ²ΠΈ сС Π½Π°Π»Π°Π·Π΅ Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ Π³Ρ€Π°Π΄ΠΈΡ‚ΠΈ, Π° ΠΏΠΎΡˆΡ‚ΠΎ Π’Π°Ρ„ Π·Π½Π° Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Ρƒ ΠΎΠ²ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠ½ΠΈΡ… Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°, Π½Π΅ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ Π΄Π° инсталиратС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π±ΠΈΠ»ΠΎ Π³Π΄Π΅ Π΄Ρ€ΡƒΠ³Π΄Π΅.

Ако корисници вишС Π²ΠΎΠ»Π΅ Π΄Π° ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°Ρ˜Ρƒ Π²Π°Π½ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° Π·Π° ΠΈΠ·Π³Ρ€Π°Π΄ΡšΡƒ, ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ./Π²Π°Ρ„ инсталл. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΈ прСфикс Π·Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ јС / уср / Π»ΠΎΡ†Π°Π»Π’Π°ΠΊΠΎ ./Π²Π°Ρ„ инсталл Ρ›Π΅ инсталирати ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅ Ρƒ / уср / Π»ΠΎΡ†Π°Π» / Π±ΠΈΠ½, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Ρƒ ! / Уср / Π»ΠΎΡ†Π°Π» / Π»ΠΈΠ± ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ Π·Π°Π³Π»Π°Π²Ρ™Π° Ρƒ /уср/Π»ΠΎΡ†Π°Π»/ΠΈΠ½Ρ†Π»ΡƒΠ΄Π΅. ΠŸΡ€Π°Π²Π° супСркорисника ΠΎΠ±ΠΈΡ‡Π½ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΡƒΠ΄Ρƒ постављСна са ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΈΠΌ прСфиксом, Ρ‚Π°ΠΊΠΎ Π΄Π° Π±ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΠΈΠ»Π° судо ./Π²Π°Ρ„ инсталл. Када сС ΠΏΠΎΠΊΡ€Π΅Π½Π΅, Π’Π°Ρ„ Ρ›Π΅ ΠΏΡ€Π²ΠΎ ΠΈΠ·Π°Π±Ρ€Π°Ρ‚ΠΈ Π΄Π° користи Π΄Π΅Ρ™Π΅Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅, Π° Π·Π°Ρ‚ΠΈΠΌ Ρ›Π΅ ΠΏΠΎΡ‚Ρ€Π°ΠΆΠΈΡ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π΄ΡƒΠΆ ΠΏΡƒΡ‚Π°ΡšΠ΅ Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° конфигурисаних Ρƒ Π»ΠΎΠΊΠ°Π»Π½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΡƒ. Π”Π°ΠΊΠ»Π΅, ΠΊΠ°Π΄Π° инсталиратС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π½Π° систСм, Π΄ΠΎΠ±Ρ€Π° јС пракса Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π° Π»ΠΈ сС користС ΠΏΡ€Π°Π²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΡ†ΠΈ ΠΌΠΎΠ³Ρƒ ΠΈΠ·Π°Π±Ρ€Π°Ρ‚ΠΈ Π΄Π° ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°Ρ˜Ρƒ са Π΄Ρ€ΡƒΠ³ΠΈΠΌ прСфиксом Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅ прослСдити ΠΎΠΏΡ†ΠΈΡ˜Ρƒ Ρ‚ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π΅ --prefix, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

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

Ако каснијС, Π½Π°ΠΊΠΎΠ½ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅, корисник унСсС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π·Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ ./waf, користићС сС прСфикс / ΠΎΠΏΡ‚ / Π»ΠΎΡ†Π°Π».

Π’ΠΈΠΌ ./waf clean ΠΌΠΎΡ€Π° сС користити ΠΏΡ€Π΅ Ρ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡΠ°ΡšΠ° ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π° Π°ΠΊΠΎ Ρ›Π΅ сС ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π° користити Π’Π°Ρ„ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ прСфиксом.

Π”Π°ΠΊΠ»Π΅, Π΄Π° бистС користили нс-3, Π½Π΅ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ Π΄Π° ΠΏΠΎΠ·ΠΈΠ²Π°Ρ‚Π΅ ./waf install. Π’Π΅Ρ›ΠΈΠ½ΠΈ корисника ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° Ρ˜Π΅Ρ€ Π’Π°Ρ„ Ρ›Π΅ ΠΏΡ€Π΅ΡƒΠ·Π΅Ρ‚ΠΈ Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅, Π°Π»ΠΈ Π½Π΅ΠΊΠΈΠΌ корисницима ΠΎΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ корисно Π°ΠΊΠΎ ΡšΠΈΡ…ΠΎΠ²Π΅ активности ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Ρƒ Ρ€Π°Π΄ са ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΠΌΠ° ΠΈΠ·Π²Π°Π½ нс-3 Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ°.

Π’Π°Ρ„ синглС

На највишСм Π½ΠΈΠ²ΠΎΡƒ нс-3 ΠΈΠ·Π²ΠΎΡ€Π½ΠΎΠ³ стабла ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ само јСдна Π’Π°Ρ„ скрипта. Када ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π΄ΠΈΡ‚Π΅, ΠΏΡ€ΠΎΠ²Π΅ΡˆΡ›Π΅Ρ‚Π΅ доста Π²Ρ€Π΅ΠΌΠ΅Π½Π° Ρƒ ΠΈΠΌΠ΅Π½ΠΈΠΊΡƒ scratch/ ΠΈΠ»ΠΈ Π΄ΡƒΠ±Ρ™Π΅ Ρƒsrc/... Π° Ρƒ исто Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΡ€Π°Ρ˜Ρƒ Π΄Π° Ρ‚Ρ€Ρ‡Π΅ Π’Π°Ρ„. ΠœΠΎΠΆΠ΅Ρ‚Π΅ само Π΄Π° сС сСтитС Π³Π΄Π΅ стС ΠΈ Π±Π΅ΠΆΠΈΡ‚Π΅ Π’Π°Ρ„ ΠΊΠ°ΠΊΠΎ слијСди:

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

Π°Π»ΠΈ ΠΎΠ²ΠΎ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ Π·Π°ΠΌΠΎΡ€Π½ΠΎ ΠΈ ΠΏΠΎΠ΄Π»ΠΎΠΆΠ½ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ°ΠΌΠ°, Ρ‚Π°ΠΊΠΎ Π΄Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅ Π±ΠΎΡ™Π° Ρ€Π΅ΡˆΠ΅ΡšΠ°. ЈСдан ΡƒΠΎΠ±ΠΈΡ‡Π°Ρ˜Π΅Π½ΠΈ Π½Π°Ρ‡ΠΈΠ½ јС ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ ΡƒΡ€Π΅Ρ’ΠΈΠ²Π°Ρ‡Π° тСкста ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС Смацс ΠΈΠ»ΠΈ Π΅Π½Π΅Ρ€Π³ΠΈΡ˜Π°, Ρƒ којој су ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π΅ Π΄Π²Π΅ тСрминалскС сСсијС, јСдна сС користи Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ нс-3, Π° Π΄Ρ€ΡƒΠ³Π° сС користи Π·Π° ΡƒΡ€Π΅Ρ’ΠΈΠ²Π°ΡšΠ΅ ΠΈΠ·Π²ΠΎΡ€Π½ΠΎΠ³ ΠΊΠΎΠ΄Π°. Ако само ΠΈΠΌΠ°Ρ‚Π΅ Ρ‚Π°Ρ€Π±Π°Π»Π», ΠΎΠ½Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π° ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠΌΠΎΡ›ΠΈ:

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

$ cd scratch 
$ waff build

Π£ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π° ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ°ΠΌΡ™ΠΈΠ²ΠΎ Π΄ΠΎΠ΄Π°Ρ‚ΠΈ Ρ‚Ρ€ΠΈΠ²ΠΈΡ˜Π°Π»Π½Ρƒ Π²Π°Ρ„ скрипту ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС exec ../../waf. Молим Ρ‚Π΅ Π½Π΅ Ρ€Π°Π΄ΠΈ Ρ‚ΠΎ. Ово јС Π·Π±ΡƒΡšΡƒΡ˜ΡƒΡ›Π΅ Π·Π° ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΈΠΊΠ΅ ΠΈ, ΠΊΠ°Π΄Π° сС ΡƒΡ€Π°Π΄ΠΈ лошС, Π΄ΠΎΠ²ΠΎΠ΄ΠΈ Π΄ΠΎ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° Ρƒ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠΈ којС јС Ρ‚Π΅ΡˆΠΊΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ. Π“ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½Π° Ρ€Π΅ΡˆΠ΅ΡšΠ° су ΠΏΡƒΡ‚ који Ρ‚Ρ€Π΅Π±Π° користити.

3.5 Π’Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ нс-3

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ Ρ˜Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Π΅ тСстовС нс-3 Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π΅ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ΠΌ скриптС ./тСст.ΠΏΠΈ:

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

ΠžΠ²Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΎΠ±ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠΊΡ€Π΅Ρ›Ρƒ корисници ΠΊΠ°ΠΊΠΎ Π±ΠΈ Π±Ρ€Π·ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ Π΄Π° Π»ΠΈ јС нс-3 Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½Π°. (Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° рСдослСд Ρ€Π΅Π΄ΠΎΠ²Π° β€žΠŸΠ ΠžΠ›ΠΠ–Π˜: ...β€œ ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ Π΄Ρ€ΡƒΠ³Π°Ρ‡ΠΈΡ˜ΠΈ, Ρ‚ΠΎ јС Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ. Оно ΡˆΡ‚ΠΎ јС Π²Π°ΠΆΠ½ΠΎ јС Π΄Π° Ρ€Π΅Π΄ Ρ€Π΅Π·ΠΈΠΌΠ΅Π° Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜Π° ΠΏΠΎΠΊΠ°Π·ΡƒΡ˜Π΅ Π΄Π° су сви тСстови ΠΏΡ€ΠΎΡˆΠ»ΠΈ; нијСдан тСст нијС Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ°Π½ ΠΈΠ»ΠΈ ΠΏΠ°ΠΎ.) И Π’Π°Ρ„Π˜ тСст.ΠΏΠΈ Ρ›Π΅ ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΠΈ Ρ€Π°Π΄ ΠΏΡ€Π΅ΠΊΠΎ доступних процСсорских Ρ˜Π΅Π·Π³Π°Ρ€Π° машинС.

3.6 ΠŸΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ скриптС

ΠžΠ±ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠΊΡ€Π΅Ρ›Π΅ΠΌΠΎ скриптС ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΎΠΌ Π’Π°Ρ„. Ово ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° систСму ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅ Π΄Π° осигура Π΄Π° су ΠΏΡƒΡ‚Π°ΡšΠ΅ Π΄Π΅Ρ™Π΅Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ исправно постављСнС ΠΈ Π΄Π° су Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ доступнС Ρƒ Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠ·Π²ΠΎΡ’Π΅ΡšΠ°. Π”Π° бистС ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ, Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ користитС Π’Π°Ρ„ са ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -β€―-run. Π₯ајдС Π΄Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅ΠΌΠΎ нс-3 Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ свСприсутног ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Ρ…Π΅Π»Π»ΠΎ ΡΠ²Π΅Ρ‚ΡƒΠΏΠΈΡΠΈΠ²Π°ΡšΠ΅ΠΌ слСдСћСг:

$ ./waf --run hello-simulator

Π’Π°Ρ„ Ρ›Π΅ ΠΏΡ€Π²ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΠΈ Π΄Π° Π»ΠΈ јС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½ ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚ΠΈ Π°ΠΊΠΎ јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ. Онда Π’Π°Ρ„ Ρ›Π΅ ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ који ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ слСдСћи ΠΈΠ·Π»Π°Π·.

Hello Simulator

ЧСститам! Π‘Π°Π΄Π° стС нс-3 корисник!

Π¨Ρ‚Π° Π΄Π° Ρ€Π°Π΄ΠΈΠΌ Π°ΠΊΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π΅?

Ако Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΡ€ΡƒΠΊΠ΅ Π’Π°Ρ„ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°Ρ˜ΡƒΡ›ΠΈ Π΄Π° јС Π³Ρ€Π°Π΄ΡšΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Ρ€ΡˆΠ΅Π½Π°, Π°Π»ΠΈ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈΠ·Π»Π°Π· "Π—Π΄Ρ€Π°Π²ΠΎ симулатор", ΠΎΠ½Π΄Π° ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ могућност Π΄Π° стС Ρƒ ΠΎΠ΄Π΅Ρ™ΠΊΡƒ [Π‘ΡƒΠΈΠ»Π΄-Π²ΠΈΡ‚Ρ…-Π’Π°Ρ„] ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ·Ρ€Π°Π΄Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, Π°Π»ΠΈ јС пропустио ΠΏΠΎΠ²Ρ€Π°Ρ‚Π°ΠΊ Π½Π° Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΠΈ нСисправност. Π‘Π°Π² ΠΈΠ·Π»Π°Π· ΠΊΠΎΠ½Π·ΠΎΠ»Π΅ који сС користи Ρƒ ΠΎΠ²ΠΎΠΌ Π²ΠΎΠ΄ΠΈΡ‡Ρƒ користи посСбну нс-3 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ која Π²Ρ€ΡˆΠΈ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ ΠΈ користи сС Π·Π° ΡˆΡ‚Π°ΠΌΠΏΠ°ΡšΠ΅ ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΡ’Π΅Π½ΠΈΡ… ΠΏΠΎΡ€ΡƒΠΊΠ° Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»ΠΈ. Излаз ΠΈΠ· ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ јС аутоматски ΠΎΠ½Π΅ΠΌΠΎΠ³ΡƒΡ›Π΅Π½ ΠΊΠ°Π΄Π° сС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½ΠΈ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° – ΠΎΠ½ јС β€žΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½β€œ. Ако Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈΠ·Π»Π°Π· β€žΠ₯Π΅Π»Π»ΠΎ Π‘ΠΈΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€β€œ, унСситС слСдСћС:

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

ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄ΠΈΡ‚ΠΈ Π’Π°Ρ„ Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° нс-3 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, којС ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈ тСстовС. Π—Π°Ρ‚ΠΈΠΌ Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° ΠΏΠΎΠ½ΠΎΠ²ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ ΠΊΠΎΠ΄Π° Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅Ρ‚Π΅ ΡƒΠΊΡƒΡ†Π°Ρ‚ΠΈ

$ ./waf

Π‘Π°Π΄Π° Π°ΠΊΠΎ ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Ρ…Π΅Π»Π»ΠΎ-симулатор, Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡ‡Π΅ΠΊΠΈΠ²Π°Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚.

3.6.1 АргумСнти ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС

Π”Π° бистС прослСдили Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ нс-3, користитС слСдСћи ΠΎΠ±Ρ€Π°Π·Π°Ρ†:

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

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½ΠΎΠΌ вашСг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΠΌΠ°. Расправа -β€―-command-template Π·Π° Π’Π°Ρ„ јС Ρƒ ΡΡƒΡˆΡ‚ΠΈΠ½ΠΈ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ Π·Π° ΠΈΠ·Π³Ρ€Π°Π΄ΡšΡƒ стварнС ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Π’Π°Ρ„ користи сС Π·Π° ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π°ΡšΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°. Π’Π°Ρ„ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π°Π²Π° Π΄Π° Π»ΠΈ јС Π³Ρ€Π°Π΄ΡšΠ° Π·Π°Π²Ρ€ΡˆΠ΅Π½Π°, поставља ΠΏΡƒΡ‚Π°ΡšΠ΅ Π΄Π΅Ρ™Π΅Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, Π·Π°Ρ‚ΠΈΠΌ користи достављСни шаблон ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС ΠΈ Π·Π°ΠΌΠ΅ΡšΡƒΡ˜Π΅ ΠΈΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° Ρ‡ΡƒΠ²Π°Ρ€ мСста %с Π΄Π° ΠΏΠΎΠ·ΠΎΠ²Π΅ ΠΈΠ·Π²Ρ€ΡˆΠ½ΠΈ Ρ„Π°Ρ˜Π». Ако сматратС Π΄Π° јС ΠΎΠ²Π° синтакса ΠΊΠΎΠΌΠΏΠ»ΠΈΠΊΠΎΠ²Π°Π½Π°, ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΡ˜Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° која ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ нс-3 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ ΠΈ њСговС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½Π΅ Ρƒ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Ρ€ΡƒΠΊΠ΅ Π½Π°Π²ΠΎΠ΄Π½ΠΈΠΊΠ΅:

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

Још јСдан посСбно користан ΠΏΡ€ΠΈΠΌΠ΅Ρ€ јС сСлСктивно ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ тСстних ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΡ€Π΅Ρ‚ΠΏΠΎΡΡ‚Π°Π²ΠΈΠΌΠΎ Π΄Π° ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ тСст ΠΏΠ°ΠΊΠ΅Ρ‚ који сС Π·ΠΎΠ²Π΅ митСст (Ρƒ ствари, Π½Π΅ ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ). Изнад смо користили скрипту ./тСст.ΠΏΠΈ Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Π²Π΅Ρ›Π΅Π³ Π±Ρ€ΠΎΡ˜Π° тСстова, који вишС ΠΏΡƒΡ‚Π° ΠΏΠΎΠ·ΠΈΠ²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Π·Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ тСст-Ρ€ΡƒΠ½Π½Π΅Ρ€. Π¦Π°Π»Π» тСст-Ρ€ΡƒΠ½Π½Π΅Ρ€ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π΄Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ јСдан тСст:

$ ./waf --run test-runner --command-template="%s --suite=mytest --verbose"

АргумСнти Ρ›Π΅ Π±ΠΈΡ‚ΠΈ прослСђСни ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ тСст-Ρ€ΡƒΠ½Π½Π΅Ρ€. ΠŸΠΎΡˆΡ‚ΠΎ митСст Π½Π΅ ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ, Π±ΠΈΡ›Π΅ гСнСрисана ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΎ Π³Ρ€Π΅ΡˆΡ†ΠΈ. Π”Π° бистС ΠΎΠ΄ΡˆΡ‚Π°ΠΌΠΏΠ°Π»ΠΈ доступнС ΠΎΠΏΡ†ΠΈΡ˜Π΅ ΠΏΡ€ΠΎΠ±Π½ΠΎΠ³ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ°, унСситС:

$ ./waf --run test-runner --command-template="%s --help"

3.6.2 ΠžΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°

Π”Π° бистС ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΠ»ΠΈ нс-3 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ услуТним ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΎΠΌ, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС Π΄Π΅Π±Π°Π³Π΅Ρ€ (Π½ΠΏΡ€. Π³Π΄Π±) ΠΈΠ»ΠΈ Π°Π»Π°Ρ‚ Π·Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π΅ (Π½ΠΏΡ€. Π²Π°Π»Π³Ρ€ΠΈΠ½Π΄), користитС сличан ΠΎΠ±Π»ΠΈΠΊ -β€―-command-template = "…". На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° Π³Π΄Π± ваш Ρ…Π΅Π»Π»ΠΎ-симулатор нс-3 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ са Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΠΌΠ°:

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

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° ΠΈΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° нс-3 Π΄ΠΎΠ»Π°Π·ΠΈ са Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ -β€―-run, ΠΈ услуТни ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Π·Π° ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ΅ (ΠΎΠ²Π΄Π΅ Π³Π΄Π±) јС ΠΏΡ€Π²Π° лСксСма Ρƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ -β€―-command-template. ΠžΠΏΡ†ΠΈΡ˜Π° -β€―-args ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜ΠΈ Π³Π΄Π±Π΄Π° остатак ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС ΠΏΡ€ΠΈΠΏΠ°Π΄Π° β€žΠ½ΠΈΠΆΠ΅ΠΌβ€œ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ. (НСкС Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ Π³Π΄Π± Π½Π΅ Ρ€Π°Π·ΡƒΠΌΠ΅ΠΌ ΠΎΠΏΡ†ΠΈΡ˜Ρƒ -β€―-args. Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, ΡƒΠΊΠ»ΠΎΠ½ΠΈΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈΠ· -β€―-command-template ΠΈ користитС скуп ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π³Π΄Π± аргс.) МоТСмо ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΎΠ²Π°Ρ‚ΠΈ овај Ρ€Π΅Ρ†Π΅ΠΏΡ‚ ΠΈ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΈ Π΄Π° бисмо ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΠ»ΠΈ тСст ΠΏΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΎΠΌ Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°:

$ ./waf --run test-runner --command-template="gdb %s --args --suite=mytest --verbose"

3.6.3 Π Π°Π΄Π½ΠΈ ΠΈΠΌΠ΅Π½ΠΈΠΊ

Π’Π°Ρ„ Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° сС лансира са својС Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π½Π° Π²Ρ€Ρ…Ρƒ нс-3 стабла. Ова фасцикла ΠΏΠΎΡΡ‚Π°Ρ˜Π΅ Ρ€Π°Π΄Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ Ρƒ који Ρ›Π΅ Π±ΠΈΡ‚ΠΈ уписанС ΠΈΠ·Π»Π°Π·Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅. Али ΡˆΡ‚Π° Π°ΠΊΠΎ ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° ΠΎΠ²Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ Π·Π°Π΄Ρ€ΠΆΠΈΡ‚Π΅ ΠΈΠ·Π²Π°Π½ нс-3 ΠΈΠ·Π²ΠΎΡ€Π½ΠΎΠ³ стабла? ΠšΠΎΡ€ΠΈΡΡ‚ΠΈΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ -β€―-cwd:

$ ./waf --cwd=...

МоТда Ρ›Π΅ Π²Π°ΠΌ Π±ΠΈΡ‚ΠΈ згоднијС Π΄Π° Π΄ΠΎΠ±ΠΈΡ˜Π΅Ρ‚Π΅ ΠΈΠ·Π»Π°Π·Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ Ρƒ свом Ρ€Π°Π΄Π½ΠΎΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ. Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, слСдСћС ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½Π΅ Π°ΠΊΡ†ΠΈΡ˜Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΌΠΎΡ›ΠΈ:

$ function waff {
CWD="$PWD" 
cd $NS3DIR >/dev/null 
./waf --cwd="$CWD" $*
cd - >/dev/null 
}

Ова Π΄Π΅ΠΊΠΎΡ€Π°Ρ†ΠΈΡ˜Π° ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½Π΅ Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ‡ΡƒΠ²Π° Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΈ Ρ€Π°Π΄Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ, ΠΈΠ΄Π΅ Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ Π’Π°Ρ„Π° Π·Π°Ρ‚ΠΈΠΌ ΡƒΠΏΡƒΡ›ΡƒΡ˜Π΅ Π’Π°Ρ„ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ€Π°Π΄Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ Π½Π°Π·Π°Π΄ Ρƒ Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΈ Ρ€Π°Π΄Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ сачуван ΠΏΡ€Π΅ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°. ПомињСмо Π΅ΠΊΠΈΠΏΡƒ -β€―-cwd Π Π°Π΄ΠΈ потпуности, Π²Π΅Ρ›ΠΈΠ½Π° корисника Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ ΠΏΠΎΠΊΡ€Π΅Ρ›Π΅ Π’Π°Ρ„ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° највишСг Π½ΠΈΠ²ΠΎΠ° ΠΈ Ρ‚Π°ΠΌΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡˆΠ΅ ΠΈΠ·Π»Π°Π·Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅.

Наставак: ΠŸΠΎΠ³Π»Π°Π²Ρ™Π΅ 4

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€