Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C++. Π‘Π±ΠΎΡ€Π½ΠΈΠΊ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ²Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 15

Автор Π”. БтСфСнс

Π Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ 1.3, 1.11 ΠΈ 1.16.

1.9. Π‘Π±ΠΎΡ€ΠΊΠ° динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Boost.Build

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Boost.Build для сборки динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° исходных Ρ„Π°ΠΉΠ»ΠΎΠ² Π‘++, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ пСрСчислСнныС Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1.2.

РСшСниС

Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π³Π΄Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ, Ссли Π½Π°Π΄ΠΎ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, создайтС Ρ„Π°ΠΉΠ» Jamroot. Π’ Ρ„Π°ΠΉΠ»Π΅ Jamroot Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ lib, ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΡƒΠΊΠ°Π·Π°Π² Π² качСствС исходных Ρ„Π°ΠΉΠ»ΠΎΠ² свои Ρ„Π°ΠΉΠ»Ρ‹ .cpp ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π² качСствС трСбования свойство <link>shared. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ поиска Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚.Π΅. Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ include для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ использованию Π² Π²ΠΈΠ΄Π΅ <include>ΠΏΡƒΡ‚ΡŒ. Если исходныС Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ компилятору, Π³Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ <include>ΠΏΡƒΡ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ символы вашСй динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ экспортированы Π² Windows с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ __declspec(dllexport), Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ <define>символ. НаконСц, Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, содСрТащСй Jamroot, запуститС bjam, ΠΊΠ°ΠΊ описано Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ 1.7.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· исходных Ρ„Π°ΠΉΠ»ΠΎΠ², пСрСчислСнных Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1.2, Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, создайтС Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ georgeringo Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Jamroot, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1.12.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1.12. Jam-Ρ„Π°ΠΉΠ» для сборки динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ georgeringo.so, georgeringo.dll ΠΈΠ»ΠΈ georgeringo.dylib

# Jamfile для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° georgeringo

lib libgeorgeringo

 : # исходники

  george.cpp ringo.cpp georgeringo.cpp

 : # трСбования

  <link>shared

  <define>GEORGERINGO_DLL

 : # сборка-ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

 : # трСбования-ΠΊ-использованию

  <include>..

 ;

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

> bjam libgeorgeringo

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

Как ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ 1.8, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ lib ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объявлСния Ρ†Π΅Π»ΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. ИспользованиС трСбования <include>.. освобоТдаСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ зависит ΠΎΡ‚ вашСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΎΡ‚ нСобходимости явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² своих трСбованиях Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² вашСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ <link>shared ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° всСгда ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ динамичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ, ΠΈ ΠΊΠ°ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ, опуститС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ <link>shared ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ это свойство Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈΠ»ΠΈ Π² трСбованиях Ρ†Π΅Π»ΠΈ, которая зависит ΠΎΡ‚ вашСй Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Однако написаниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ собрана ΠΈ ΠΊΠ°ΠΊ статичСская, ΠΈ ΠΊΠ°ΠΊ динамичСская, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особого внимания, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ экспорта символов Π² Windows трСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ΠΌ являСтся пСрСписываниС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 1.2 Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ, ΠΈ ΠΊΠ°ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈ Ρ‚Π°ΠΊΠΆΠ΅

Π Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ 1.4, 1.12, 1.17 ΠΈ 1.19.

1.10. Π‘Π±ΠΎΡ€ΠΊΠ° слоТного прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ BoostBuild

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Boost.Build для сборки исполняСмого Ρ„Π°ΠΉΠ»Π°, зависящСго ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… статичСских ΠΈ динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

РСшСниС

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги.

1. Π”ля ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ зависит исполняСмый Ρ„Π°ΠΉΠ», β€” ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ распространяСтся Π² Π²ΠΈΠ΄Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, β€” создайтС Jam-Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊ описано Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°Ρ… 1.8 ΠΈ 1.9.

2. Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π³Π΄Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ», создайтС Ρ„Π°ΠΉΠ» Jamroot.

3. Π’ Ρ„Π°ΠΉΠ»Π΅ Jamroot Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ exe, ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ исполняСмый Ρ„Π°ΠΉΠ». Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ свои Ρ„Π°ΠΉΠ»Ρ‹ .cpp ΠΈ Ρ†Π΅Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… исполняСмый Ρ„Π°ΠΉΠ» зависит ΠΊΠ°ΠΊ ΠΎΡ‚ источников. Π’Π°ΠΊΠΆΠ΅, Ссли трСбуСтся, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ свойства Π²ΠΈΠ΄Π° <include>ΠΏΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ компилятору, Π³Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

4. Π’ Ρ„Π°ΠΉΠ»Π΅ Jamroot Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ install, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Π² качСствС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ свойства <install-dependencies>on, <install-type>EXE ΠΈ <install-type>SHARED_LIB.

5. Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, содСрТащСй Jamroot, запуститС bjam, ΠΊΠ°ΠΊ описано Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ 1.7.

6. ΠΠ°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· исходных Ρ„Π°ΠΉΠ»ΠΎΠ², пСрСчислСнных Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1.3, исполняСмый Ρ„Π°ΠΉΠ», создайтС Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ hellobeatles Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Jamroot, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1.13.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1.13. Jam-Ρ„Π°ΠΉΠ» для сборки исполняСмого Ρ„Π°ΠΉΠ»Π° hellobeatles.exe ΠΈΠ»ΠΈ hellobeatles

# Jamfile для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° hellobeatles

exe hellobeatles

 : # исходники

  ../johnpaul//libjohnpaul

  ../georgeringo//libgeorgeringo

  hellobeatles.cpp

 ;


install dist

 : # исходники

  hellobeatles

 : # трСбования

  <install-dependencies>on

  <install-type>EXE

  <install-type>SHARED_LIB

  <location>.

 ;

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

> bjam hellobeatles

Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ hellobeatles. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этого Π²Π½Π°Ρ‡Π°Π»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ собраны Π΄Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит Ρ†Π΅Π»ΡŒ hellobeatles, Π° Π·Π°Ρ‚Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ собрана Ρ†Π΅Π»ΡŒ hellobeatles. НаконСц, Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

> bjam dist

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ исполняСмый Ρ„Π°ΠΉΠ» hellobeatles ΠΈ динамичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° georgeringo Π±ΡƒΠ΄ΡƒΡ‚ скопированы Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Ρ„Π°ΠΉΠ» hellobeatles.cpp.

Как Π±Ρ‹Π»ΠΎ сказано Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ 1.5, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ hellobeatles, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ копию Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ вашСго инструмСнтария Π² Ρ‚Π°ΠΊΠΎΠ΅ мСсто, Π³Π΄Π΅ опСрационная систСма смоТСт Π΅Π΅ Π½Π°ΠΉΡ‚ΠΈ.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ Π¦Π΅Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

Π¦Π΅Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит данная Ρ†Π΅Π»ΡŒ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ источники с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ записи path//target-name. Π’ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°Ρ… 1.8 ΠΈ 1.9 я ΠΏΠΎΠΊΠ°Π·Π°Π», ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Ρ†Π΅Π»ΡŒ для сборки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· исходного ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Boost.Build Однако Ссли Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° доступна Π² Π²ΠΈΠ΄Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡŒ для Π½Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

lib имя-Ρ†Π΅Π»ΠΈ

 :

 : <file>имя-Ρ„Π°ΠΉΠ»Π°

 ;

Как объяснялось Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ 1.7, большая Ρ‡Π°ΡΡ‚ΡŒ основных Ρ†Π΅Π»Π΅ΠΉ соотвСтствуСт Π½Π΅ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ, Π° Π½Π°Π±ΠΎΡ€Ρƒ связанных Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ отладочная ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ сборка исполняСмого Ρ„Π°ΠΉΠ»Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡŒ для Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ запись.

lib имя Ρ†Π΅Π»ΠΈ

 :

 : <file>имя-Ρ„Π°ΠΉΠ»Π° трСбования

 ;

lib имя-Ρ†Π΅Π»ΠΈ

 : <file>Π΄Ρ€ΡƒΠ³ΠΎΠ΅-имя-Ρ„Π°ΠΉΠ»Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅-трСбования

 ;

НапримСр, ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

lib cryptolib

 :

 : <file> ../libraries/cryptolib/cryptolib_debug.lib

  <variant>debug

 ;

 lib cryptolib

 : <file> ../libraries/cryptolib/cryptolib.lib

  <variant>release

 ;

Если готовая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° располоТСна Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ выполняСт поиск автоматичСски, ΠΊΠ°ΠΊ описано Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ 1.5, Ρ†Π΅Π»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

lib имя-Ρ†Π΅Π»ΠΈ

 : <name>имя-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

 ;

Π—Π΄Π΅ΡΡŒ имя-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ β€” это имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΡƒ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ 1.5. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΡƒ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅

lib имя-Ρ†Π΅Π»ΠΈ

 : <name>имя-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

 <search>ΠΏΡƒΡ‚ΡŒ-ΠΊ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅

 ;

Установка

Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ установки вмСстС с нСсколькими Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ исполняСмыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ динамичСскими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΎ зависит. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ install-dependencies, которая позволяСт Π²Π°ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» ΠΈ Ρ‚ΠΈΠΏ зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ установлСны. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1.13 Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ <install-dependencies>on Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ install-dependencies, Π° трСбования <install-type>EXE ΠΈ <install-type>SHARED_LIB говорят BoostBuild ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС зависимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ исполняСмыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ»ΠΈ динамичСскими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ install-type Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ LIB ΠΈ IMPORT_LIB.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ВсС Ρ‚Ρ€ΠΈ Jam-Ρ„Π°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ сборкС исполняСмого Ρ„Π°ΠΉΠ»Π° hellobeatles, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Jamroot. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ простого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ слСдуСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Jam-Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ с СдинствСнным Π²Ρ‹ΡΡˆΠΈΠΌ Jam-Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ слоТных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Boost.Build's, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ наслСдованиС свойств Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Одним ΠΈΠ· способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² нашСм случаС являСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ Jam-Ρ„Π°ΠΉΠ»ΠΎΠ² Π² дирСкториях johnpaul, georgeringo ΠΈ hellobeatles с Jamroot Π½Π° Jamfile ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Jamroot со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимым Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.