Π Π°Π·Π½ΠΎΠ΅

Make Ρ„Π°ΠΉΠ» Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅: Makefile для самых ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… / Π₯Π°Π±Ρ€

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

MAKE FILE EXTENSION — ЧВО Π’ΠΠšΠžΠ• ЀАЙЛ .MAKE И КАК Π― ΠœΠžΠ“Π£ Π•Π“Πž ОВКРЫВЬ? — Π ΠΠ‘Π¨Π˜Π Π•ΠΠ˜Π•

разработчикяблоко ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ 2,6 (5 голосов) катСгорияЀайлы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ЀорматВСкст X Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» сохраняСтся Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ содСрТимоС этого Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅

Π’ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° 1Xcode Makefile Script

разработчикяблоко
ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ 2,6 (5 голосов)
катСгорияЀайлы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°
ЀорматВСкст X

ВСкст

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» сохраняСтся Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ содСрТимоС этого Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» MAKE?

Π‘ΠΊΡ€ΠΈΠΏΡ‚, написанный ΠΊΠ°ΠΊ Makefile, Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для компиляции ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π°; Ρ…Ρ€Π°Π½ΠΈΡ‚ инструкции, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ стандарт GNU make. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация

НОВА: Makefile Ρ‡Π°Ρ‰Π΅ всСго ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° Makefile, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°.

БКАЧАВЬ Π‘Π•Π‘ΠŸΠ›ΠΠ’ΠΠž ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ 300 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ File Viewer Plus. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ MAKE

ΠΌΠ°ΠΊΠΈΠ½Ρ‚ΠΎΡˆ
Apple Xcode
Π›ΡŽΠ±ΠΎΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€

ОбновлСно 16.04.2012

Π’ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° 2Drush Makefile

Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊDrush Make
ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ 1.0 (1 голос)
катСгорияЀайлы настроСк
ЀорматВСкст X

ВСкст

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» сохраняСтся Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ содСрТимоС этого Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

Ассоциация Ρ„Π°ΠΉΠ»ΠΎΠ² .MAKE 2

Π€Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Drush make, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Drush, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ для создания Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ использованию Π²Π΅Π±-сайтов Drupal; сохранСн Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ настройки установки Drupal; ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ Drupal, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для Π²Π΅Π±-сайта, ΠΈ содСрТит URL-адрСс ΠΏΠ°Ρ‚Ρ‡Π° для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация

Drush — это сокращСниС ΠΎΡ‚ «Drupal Shell». Π­Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Drupal CMS (систСма управлСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Drupal ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Drush make — это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для этой ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ MAKE ΠΈ позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Drupal.

НОВА: Π’Π΅Ρ€ΠΌΠΈΠ½ Β«MakefileΒ» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ относится ΠΊ Ρ„Π°ΠΉΠ»Ρƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Makefile, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для встраивания исходного ΠΊΠΎΠ΄Π° Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ MAKE ОбновлСно 04.05.2011

О создании Ρ„Π°ΠΉΠ»ΠΎΠ²

Наша Ρ†Π΅Π»ΡŒ — ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» с суффиксом * .make ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ.

ВсС Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ², описания Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, пСрСчислСнныС Π½Π° этой страницС, Π±Ρ‹Π»ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ исслСдованы ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ FileInfo. ΠœΡ‹ стрСмимся ΠΊ 100% точности ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Ρ‚Π΅Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ тСстировали ΠΈ провСряли.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ дополнСния ΠΈΠ»ΠΈ обновлСния Π½Π° этой страницС, поТалуйста, сообщитС Π½Π°ΠΌ ΠΎΠ± этом.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Makefile ΠΈ ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ – Hexlet Guides

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅
  1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  2. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ make ΠΈ Makefile
    1. Бинтаксис Makefile
  3. ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ΅ использованиС
    1. Ѐальшивая Ρ†Π΅Π»ΡŒ
    2. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ошибок
    3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
  4. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ ΠΆΠΈΠ·Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² найдётся история ΠΏΡ€ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ дСнь с Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. ПослС клонирования основного рСпозитория ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° наступаСт этап, ΠΊΠΎΠ³Π΄Π° приходится Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ мноТСство ΠΊΠΎΠΌΠ°Π½Π΄ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ ΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π‘Π΅Π· описания ΠΊΠΎΠΌΠ°Π½Π΄, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ происходит, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

# Bash
touch ~/. bash_history
ufw allow 3035/tcp || echo 'cant configure ufw'
ufw allow http || echo 'cant configure ufw'
docker run \
  -v /root/:/root/ \
  -v /etc:/etc \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/tmp:/var/tmp \
  -v /tmp:/tmp \
  -v $PWD:/app \
  --network host \
  -w /app \
  --env-file .env \
  ansible ansible-playbook ansible/development.yml -i ansible/development --limit=localhost -vv
grep -qxF 'fs.inotify.max_user_watches=524288' /etc/sysctl.conf || echo fs.inotify.max_user_watches=524288 | tee -a /etc/sysctl.conf || echo 'cant set max_user_watches' && sysctl -p
sudo systemctl daemon-reload && sudo systemctl restart docker

Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ лишь Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сами ΠΏΠΎ сСбС Π΄Π»ΠΈΠ½Π½Ρ‹Π΅, содСрТат ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π»Π°Π³ΠΎΠ², Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈΡ… Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Π½ΠΎ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ вСсти Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ становится слоТнСС с ростом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΠ½Π° Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ устарСваСт, Π° ΠΏΠΎΡ€ΠΎΠ³ Π²Ρ…ΠΎΠ΄Π° для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² становится Π²Ρ‹ΡˆΠ΅, вСдь ΡƒΠΆΠ΅ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π² состоянии Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ всСх Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НСкоторыС Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² дСнь.

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ становится понятно, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ΅Π½ инструмСнт, способный ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² сСбС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΡˆΠΎΡ€Ρ‚ΠΊΠ°Ρ‚Ρ‹ (Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈ простыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ИмСнно Ρ‚Π°ΠΊΠΈΠΌ инструмСнтом стал Makefile ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° make. Π­Ρ‚ΠΎΡ‚ Π³Π°ΠΉΠ΄ расскаТСт, ΠΊΠ°ΠΊ использованиС этих инструмСнтов ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ свСсти процСсс разворачивания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊ нСскольким ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ ΠΈ понятным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ:

# Bash
make setup
make start
make test

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ make ΠΈ Makefile

Makefile β€” это Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хранится вмСстС с ΠΊΠΎΠ΄ΠΎΠΌ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π•Π³ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ Π² ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Он выступаСт ΠΈ ΠΊΠ°ΠΊ докумСнтация, ΠΈ ΠΊΠ°ΠΊ исполняСмый ΠΊΠΎΠ΄. ΠœΠ΅ΠΉΠΊΡ„Π°ΠΉΠ» скрываСт Π·Π° собой Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ раскладываСт β€œΠΏΠΎ полочкам” ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° make запускаСт ΠΈΡ… ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ ΠΌΠ΅ΠΉΠΊΡ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ make ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π°Π»Π°ΡΡŒ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки исполняСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· исходного ΠΊΠΎΠ΄Π°. Она ΠΏΠΎΡΡ‚Π°Π²Π»ΡΠ»Π°ΡΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ *nix дистрибутивов, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π΅Ρ‘ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΈ повсСмСстному использованию. ПозТС оказалось Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ инструмСнт ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ процСсс Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ своём сводится ΠΊ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡Π°ΠΌ β€” автоматизация ΠΈ сборка ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΉΠΊΠ° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… стало стандартом для ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠ΅ΠΉΠΊΡ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρƒ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΊ Kubernetes, Babel, Ansible ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, повсСмСстно Π½Π° Π₯СкслСтС.

Бинтаксис Makefile

make запускаСт Ρ†Π΅Π»ΠΈ ΠΈΠ· Makefile, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄:

# Makefile
Ρ†Π΅Π»ΡŒ1: # имя Ρ†Π΅Π»ΠΈ, поддСрТиваСтся kebab-case ΠΈ snake_case
	ΠΊΠΎΠΌΠ°Π½Π΄Π°1 # для отступа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ табуляция, это ваТная Π΄Π΅Ρ‚Π°Π»ΡŒ 
	ΠΊΠΎΠΌΠ°Π½Π΄Π°2 # ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС успСха ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ

Но нСдостаточно просто Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΉΠΊΡ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эффСкт ΠΎΡ‚ Π΅Π³ΠΎ внСдрСния, понадобится ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Ρ€

MAKE Π€Π°ΠΉΠ» — Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ MAKE

1 Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ(Ρ‹) ΠΈ 0 псСвдоним(Ρ‹) Π² нашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

НиТС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы:

  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ .make Ρ„Π°ΠΉΠ»?
  • Какая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ .make Ρ„Π°ΠΉΠ»?
  • Π“Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ описаниС .make Ρ„ΠΎΡ€ΠΌΠ°Ρ‚?
  • Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ .make Ρ„Π°ΠΉΠ»Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚?
  • КакиС MIME-Ρ‚ΠΈΠΏ связан с .make Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅?

.make

Xcode Make File

MAKE file is an Xcode Make File. Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS.

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ: Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹

НазваниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: —

MIME-Ρ‚ΠΈΠΏ: application/octet-stream

Магия Π±Π°ΠΉΡ‚ (HEX): —

Магия строки (ASCII): —

Π‘ΠΈΠ½ΠΎΠ½ΠΈΠΌΡ‹:

Бсылки:

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, связанныС с:

Xcode Project

Apple Project Builder Xcode Project

Xcode Debugging Symbols

Xcode Managed Object Model

Xcode Managed Object Model Bundle Package

Xcode Playground File

Xcode Project User Data

Xcode Plug-in

Xcode Scheme Document

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ . make Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°. Если Ρƒ вас Π΅ΡΡ‚ΡŒ полСзная информация ΠΎ .make Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°ΠΌ!

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с ошибками?

ΠœΡ‹ нашли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π² нашСй Π±Π°Π·Π΅:

My Avatar Editor Character

.make Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° часто даСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ!

Богласно поисках Π½Π° нашСм сайтС, эти ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π±Ρ‹Π»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ:

mae (1),
mak (1),
mke (1)

НС удаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ .make Ρ„Π°ΠΉΠ»?

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ .make Ρ„Π°ΠΉΠ» Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π²Π°ΠΌ просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ установлСны. Если make Ассоциации установлСны Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС ΠΎΠ± ошибкС:

НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ»:

Ρ„Π°ΠΉΠ»Π°: НапримСр.make

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ», Windows Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ. Окна ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ автоматичСски, ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· списка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, установлСнных Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ассоциации Ρ„Π°ΠΉΠ»ΠΎΠ²:

  • Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Ρ‡ΡŒΠ΅ сотрудничСство Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с.
  • Π’ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠžΠ±Π·ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.
  • Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» Ρ„Π»Π°ΠΆΠΎΠΊ.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы

Windows Server 2003/2008/2012/2016, Windows 7, Windows 8, Windows 10, Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, iOS, Android

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ эту страницу

5 / 5 Π½Π° основС 26 ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

НаписаниС makefile. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «Make» Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… словарях. Π‘Π°ΠΌΡ‹ΠΉ простой ΠœΠ΅ΠΉΠΊΡ„Π°ΠΉΠ»

Бтолкнулся Π½Π° днях с нСпонятной ошибкой. Π‘Ρ‚Π°Π²Π»ΡŽ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Freebsd 10.1 Π½Π° hyperv. ПослС установки ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽ Ρ‡Π΅Ρ€Π΅Π· bsdconfig
Π½Π° СдинствСнном интСрфСйсС hn0 ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ настройки ΠΎΡ‚ dhcp. ВсС Π² порядкС, настройки ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹, занимаюсь ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ сСрвСра. ΠŸΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡΡŒ. Π’ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сСрвСр Freebsd задумываСтся 30 сСкунд Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π΅ прописки Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ³ΠΎ шлюза, ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. Π—Π°Ρ…ΠΎΠΆΡƒ Π² систСму ΠΈ Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ ip адрСс Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½.

ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² Ρ‡Π΅ΠΌ Π΄Π΅Π»ΠΎ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡŽ /etc/rc.conf:

# cat /etc/rc.conf
hostname=»hyperv-freebsd»
ifconfig_hn0=»DHCP»

ВсС, большС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚. ΠžΡˆΠΈΠ±ΠΈΡ‚ΡŒΡΡ Π½Π΅Π³Π΄Π΅. ВсС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Если Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ dhcp ΠΊΠ»ΠΈΠ΅Π½Ρ‚:

# /sbin/dhclient -c /etc/dhclient.conf hn0

Ρ‚ΠΎ сСтСвыС настройки Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ.

Π― Ρ€Π΅ΡˆΠΈΠ» Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ настройки dhclient Π² rc.conf:

Dhclient_program=»/sbin/dhclient»
dhclient_flags=»»

ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡΡŒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π΅Ρ‚, настройки ΠΏΠΎ dhcp ΠΎΠΏΡΡ‚ΡŒ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹. ΠžΡ‡Π΅Π½ΡŒ странная ситуация, я, чСстно говоря, Ρ‚ΡƒΡ‚ призадумался. ДСсятки Ρ€Π°Π· настраивал freebsd, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΈΠΆΡƒ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅. Π”Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Ρ‡Π΅Π³ΠΎ, Ρ€Π΅ΡˆΠΈΠ» Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² Handbook. Π˜Π΄Ρƒ Π² Ρ€Π°Π·Π΄Π΅Π» АвтоматичСская настройка сСти (DHCP) ΠΈ Ρ‡ΠΈΡ‚Π°ΡŽ. НахоТу Ρ‚Π°ΠΌ интСрСсный ΠΌΠΎΠΌΠ΅Π½Ρ‚:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ FreeBSD ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ DHCP выполняСтся Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ процСссом, ΠΈΠ»ΠΈ асинхронно. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ стартовыС скрипты ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ оТидая Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса конфигурирования, Ρ‚Π΅ΠΌ самым ускоряя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ систСмы.

Π€ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ создаСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² случаС, Ссли сСрвСр DHCP быстро ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° запросы, ΠΈ процСсс конфигурирования происходит быстро. Однако, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях настройка ΠΏΠΎ DHCP ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π»ΠΈΡ‚ΡŒΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя. ΠŸΡ€ΠΈ этом запуск сСтСвых сСрвисов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ, Ссли Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Ρ€Π°Π½Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ конфигурирования ΠΏΠΎ DHCP. Запуск DHCP Π² синхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, откладывая Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… стартовых скриптов Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ конфигурирования ΠΏΠΎ DHCP.

Для откладывания запуска стартовых скриптов Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ конфигурирования ΠΏΠΎ DHCP (синхронный Ρ€Π΅ΠΆΠΈΠΌ), ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SYNCDHCP:

ifconfig_fxp0=Β»SYNCDHCPΒ»

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ. Π£ΠΊΠ°Π·Ρ‹Π²Π°ΡŽ Π² /etc/rc.conf:

Ifconfig_hn0=»SYNCDHCP»

ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡΡŒ ΠΈ вуаля, всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’ΠΎ Π»ΠΈ это ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π° hyperv, Ρ‚ΠΎ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅, Π½Π΅ знаю. Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуациСй ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡΡŒ. Но Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ. Π›ΡŽΠ±Π»ΡŽ я Freebsd Π·Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ handbook, Π½ΠΎ послСднСС врСмя Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с Ρ„Ρ€ΡŽΡˆΠΊΠΎΠΉ всС Ρ€Π΅ΠΆΠ΅ ΠΈ Ρ€Π΅ΠΆΠ΅ Π² силу Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½, главная ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отсутствиС Π½ΡƒΠΆΠ½Ρ‹Ρ… дистрибутивов софта ΠΏΠΎΠ΄ Π΄Π°Π½Π½ΡƒΡŽ систСму. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ всС Ρ€Π΅ΠΆΠ΅ ΠΈ Ρ€Π΅ΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Freebsd, Π° Таль.

Помогла ΡΡ‚Π°Ρ‚ΡŒΡ? Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π°

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Freebsd

Онлайн курс «ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ Linux»

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ высокодоступныС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ систСмы, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΎΠ½Π»Π°ΠΉΠ½-курсом «Администратор LinuxΒ»
Π² OTUS. ΠšΡƒΡ€Ρ Π½Π΅ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², для поступлСния Π½ΡƒΠΆΠ½Ρ‹ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания ΠΏΠΎ сСтям ΠΈ установкС Linux Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΡƒ. ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ длится 5 мСсяцСв, послС Ρ‡Π΅Π³ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ выпускники курса смогут ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдования Ρƒ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ². ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ сСбя Π½Π° Π²ΡΡ‚ΡƒΠΏΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ тСстС ΠΈ смотритС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Π΅Π΅ ΠΏΠΎ.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ
:

  • Установка
  • Настройка
  • ОбновлСниС
  • ΠŸΡ€ΠΎΠΊΡΠΈ сСрвСр
  • Π’Π΅Π± сСрвСр NGINX
  • Π’Π΅Π± сСрвСр Apache

ОписаниС Π½Π° ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ диск, Π»ΠΈΠ±ΠΎ Π½Π° софтовый raid1, сдСланный срСдствами zfs, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ стандартный установщик.

У вас,
вСроятно, появился вопрос: ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ
ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π° ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ сразу всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ? МоТно.

gcc calculate.c main.c -o
kalkul -lm

Π’Ρ‹ скаТСтС,
Ρ‡Ρ‚ΠΎ это ΡƒΠ΄ΠΎΠ±Π½ΠΎ? Π£Π΄ΠΎΠ±Π½ΠΎ для нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° состоит
всСго ΠΈΠ· Π΄Π²ΡƒΡ… c-Ρ„Π°ΠΉΠ»ΠΎΠ². Однако ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚
ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятков Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ
названия ΠΈΡ… всСх Π² ΠΎΠ΄Π½ΠΎΠΉ строкС Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π΄Π΅Π»ΠΎΠΌ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.
Но Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Названия всСх исходных
Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для сборки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ
тСкстовый Ρ„Π°ΠΉΠ». А ΠΏΠΎΡ‚ΠΎΠΌ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚Ρ‚ΡƒΠ΄Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.

Π”Π°Π²Π°ΠΉΡ‚Π΅
создадим Ρ‚Π°ΠΊΠΎΠΉ тСкстовый Ρ„Π°ΠΉΠ» ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΈΠΌ. Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
kalkul2 ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ calculate.h, calculate.c, main.c.
Π—Π°Ρ‚Π΅ΠΌ создайтС Π² этом ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π³ΠΎ Makefile
(Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ). ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Ρ‚ΡƒΠ΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст.

Kalkul: calculate.o main.o
gcc calculate.o main.o -o kalkul -lm
calculate.o: calculate.c calculate.h
gcc -c calculate.c
main.o: main.c calculate.h
gcc -c main.c
clean:
rm -f kalkul calculate.o main.o
install:
cp kalkul /usr/local/bin/kalkul
uninstall:
rm -f /usr/local/bin/kalkul

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅
Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° строки, Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ с отступом ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ края. Π­Ρ‚ΠΎΡ‚ отступ
ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиши Tab. Волько Ρ‚Π°ΠΊ Π΅Π³ΠΎ ΠΈ Π½Π°Π΄ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ! Если
Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«ΠŸΡ€ΠΎΠ±Π΅Π»Β», ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚
ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ.

Π—Π°Ρ‚Π΅ΠΌ Π΄Π°Π΄ΠΈΠΌ
ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ всСго ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ слова:

И сразу ΠΆΠ΅
Π² нашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ запускаСмый. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°
make ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, находящихся Π²
Ρ„Π°ΠΉΠ»Π΅ со стандартным Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Makefile. Рассмотрим Π΅Π³ΠΎ структуру.

Makefile
являСтся списком ΠΏΡ€Π°Π²ΠΈΠ». КаТдоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ начинаСтся с указатСля,
Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ «ЦСль». ПослС Π½Π΅Π³ΠΎ стоит Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅, Π° Π΄Π°Π»Π΅Π΅
Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π» ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ зависимости. Π’ нашСм случаС ясно, Ρ‡Ρ‚ΠΎ
ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» kalkul зависит ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² calculate.o ΠΈ
main.o. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ собраны ΠΏΡ€Π΅ΠΆΠ΄Π΅ сборки kalkul. ПослС
зависимостСй ΠΏΠΈΡˆΡƒΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π°
ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС, ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° строки клавишСй Tab.
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° Makefile ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ слоТной. Π’Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚
ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, конструкции вСтвлСния, Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎΡ‚ вопрос
Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ изучСния.

Если ΠΌΡ‹
посмотрим Π½Π° Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π°ΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠΎ понятны. Π’Π°ΠΌ Ρ‚Π΅ ΠΆΠ΅
самыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΡƒΠΆΠ΅ пользовались. А Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚
ΠΏΡ€Π°Π²ΠΈΠ»Π° clean, install ΠΈ uninstall?

Π’ ΠΏΡ€Π°Π²ΠΈΠ»Π΅
clean стоит ΠΊΠΎΠΌΠ°Π½Π΄Π° rm, ΡƒΠ΄Π°Π»ΡΡŽΡ‰Π°Ρ исполняСмый ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π€Π»Π°Π³
-f ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ, Ссли удаляСмый Ρ„Π°ΠΉΠ» отсутствуСт, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π°
это ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ выдавая Π½ΠΈΠΊΠ°ΠΊΠΈΡ… сообщСний. Π˜Ρ‚Π°ΠΊ, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ
clean ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для «очистки» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, привСдСния Π΅Π³ΠΎ
ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ Π±Ρ‹Π» Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ make.

ЗапуститС

Появились
ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ исполняСмый. Π’Π΅ΠΏΠ΅Ρ€ΡŒ

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΈ
исполняСмый Ρ„Π°ΠΉΠ»Ρ‹ исчСзли. ΠžΡΡ‚Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ c-Ρ„Π°ΠΉΠ»Ρ‹, h-Ρ„Π°ΠΉΠ» ΠΈ сам
Makefile. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ «очистился» ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ make.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ
install ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ исполняСмый Ρ„Π°ΠΉΠ» Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/local/bin —
стандартный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ размСщСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚,
Ρ‡Ρ‚ΠΎ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· любого мСста простым Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΅Ρ‘ ΠΈΠΌΠ΅Π½ΠΈ.
Но ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π² этот

Π€Π°ΠΉΠ» MAKE — Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .make? [Π¨Π°Π³-Π·Π°-шагом]

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ прСдоставляСт ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° .make. Он ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° вопросы Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ:

  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» . make?
  • КакоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .make?
  • Как Ρ„Π°ΠΉΠ» .make Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈΠ»ΠΈ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ?
  • Как ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ .make Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚?

ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° этой страницС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΈ Ρ†Π΅Π½Π½Ρ‹ΠΉ рСсурс!

1 Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΠΈ 0 псСвдонимы, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

βœ… Xcode Make File

ОписаниС (Π½Π° английском языкС):
MAKE file is an Xcode Make File. Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS.

MIME-Ρ‚ΠΈΠΏ: application/octet-stream

ΠœΠ°Π³ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ число: —

ΠœΠ°Π³ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ число: —

ΠžΠ±Ρ€Π°Π·Π΅Ρ†: —

MAKE псСвдонимы:

MAKE cсылки ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅:

MAKE связанныС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:

Xcode Project

Apple Project Builder Xcode Project

Xcode Debugging Symbols

Xcode Managed Object Model

Xcode Managed Object Model Bundle Package

Xcode Playground File

Xcode Project User Data

Xcode Plug-in

Xcode Scheme Document

Xcode Configuration Settings

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° . make.

🚫 Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° .make часто даСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ!

По Π΄Π°Π½Π½Ρ‹ΠΌ Поиск Π½Π° нашСм сайтС эти ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π±Ρ‹Π»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ:

mae, mak, mke

Π­Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

ΠœΡ‹ нашли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² нашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…:

My Avatar Editor Character

πŸ”΄ НС удаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .make?

Если Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ, Windows провСряСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°. Если Windows распознаСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, Ρ„Π°ΠΉΠ» открываСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, которая связана с этим Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°. Когда Windows Π½Π΅ распознаСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, появляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

Windows Π½Π΅ удаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ»:

ΠΏΡ€ΠΈΠΌΠ΅Ρ€.make

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ», Windows Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π΅Π³ΠΎ открытия…

Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сопоставлСния Ρ„Π°ΠΉΠ»ΠΎΠ² . make, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ FAQ.

πŸ”΄ МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²?

ИзмСнСниС ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π΅ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ. Когда Π²Ρ‹ мСняСтС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ способ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ чтСния Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π° Π½Π΅ измСняСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π°.

Если Ρƒ вас Π΅ΡΡ‚ΡŒ полСзная информация ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° .make, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½Π°ΠΌ!

πŸ”΄ ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ Π½Π°ΡˆΡƒ страницу MAKE

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ Π½Π°ΠΌ, ΠΎΡ†Π΅Π½ΠΈΠ² Π½Π°ΡˆΡƒ страницу MAKE Π² 5-Π·Π²Π΅Π·Π΄ΠΎΡ‡Π½ΠΎΠΉ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ систСмС Π½ΠΈΠΆΠ΅. (1 Π·Π²Π΅Π·Π΄Π° плохая, 5 Π·Π²Π΅Π·Π΄ отличная)

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» MAKE? Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° .MAKE

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» MAKE?

ПолноС имя Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ MAKE: Xcode Makefile Script. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Xcode Makefile Script Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Apple. Π€Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ MAKE ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, распространяСмыми для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Mac OS, Windows. Π€Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ MAKE ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π€Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Ρ„Π°ΠΉΠ»Ρ‹. ΠŸΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π€Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° содСрТит #NUMEXTENSIONS # Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Visual C++ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для управлСния MAKE Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, хотя 3 Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ этот Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Visual C++ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Microsoft Corporation, ΠΈ Π½Π° Π΅Π³ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Π²Π΅Π±-сайтС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… MAKE ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии Visual C++.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ MAKE Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ спискС пСрСчислСны ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, совмСстимыС с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ MAKE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ 2 Π² зависимости ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ доступны. Π€Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ MAKE, ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ устройства, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ стационарныС, Π½ΠΎ Π½Π΅ всС систСмы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ способны ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹.

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» MAKE?

ΠŸΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² MAKE Π² Π΄Π°Π½Π½ΠΎΠΉ систСмС, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Xcode Makefile Script, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ слоТными. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ быстро ΠΈ эффСктивно Π±Π΅Π· ΠΏΠΎΠΌΠΎΡ‰ΠΈ спСциалиста. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ список ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Ρ‡Π΅Ρ€Π΅Π· процСсс Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ возникшСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π¨Π°Π³ 1. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΈ установитС Visual C++


ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ MAKE, скорСС всСго, связаны с отсутствиСм Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, совмСстимого с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ MAKE Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ установки # Π Π•ΠšΠžΠœΠ•ΠΠ”ΠžΠ’ΠΠΠΠžΠ™ # ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ совмСстимой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Text editor, Borland C++, Apple Xcode. Π’Ρ‹ΡˆΠ΅ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ MAKE Ρ„Π°ΠΉΠ»Ρ‹, классифицированныС Π² соотвСтствии с систСмными ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ доступны. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ установщик Visual C++ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ бСзопасным способом, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²Π°ΠΌ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ сайт Microsoft Corporation ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

Π¨Π°Π³ 2. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Visual C++ Π΄ΠΎ послСднСй вСрсии

Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² MAKE ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ послС установки Visual C++, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρƒ вас ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π²Π΅Π±-сайт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, доступна Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ новая вСрсия Visual C++. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π±ΠΎΠ»Π΅Π΅ соврСмСнных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… вСрсиях своих ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ MAKE Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ совмСстимы с Visual C++. Бамая послСдняя вСрсия Visual C++ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстима ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ старыми вСрсиями ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π¨Π°Π³ 3. НастройтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для открытия MAKE Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Visual C++

Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π±Ρ‹Π»Π° Ρ€Π΅ΡˆΠ΅Π½Π° Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС, Π²Π°ΠΌ слСдуСт ΡΠ²ΡΠ·Π°Ρ‚ΡŒ MAKE Ρ„Π°ΠΉΠ»Ρ‹ с послСднСй вСрсиСй Visual C++, установлСнной Π½Π° вашСм устройствС. ΠœΠ΅Ρ‚ΠΎΠ΄ довольно прост ΠΈ ΠΌΠ°Π»ΠΎ мСняСтся Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах.


Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Windows

  • Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Ρ„Π°ΠΉΠ»Π΅ MAKE ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠ΅ΠΉΒ».
  • Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β†’ Π•Ρ‰Π΅ прилоТСния
  • Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ процСсс, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Найти Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° этом… ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ Visual C++. ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅, ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для открытия MAKE Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ OK .


Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Mac OS

  • Π’ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ мСню, Π½Π°ΠΆΠ°Π² Π½Π° Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ MAKE, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ
  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ . Если ΠΎΠ½ Π·Π°ΠΊΡ€Ρ‹Ρ‚, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ доступным ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.
  • Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ· списка ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅, Π½Π°ΠΆΠ°Π² Β« Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ для всСх» .
  • НаконСц, это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΎ ΠΊΠΎ всСм Ρ„Π°ΠΉΠ»Π°ΠΌ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ MAKE Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ сообщСниС. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Π’ΠΏΠ΅Ρ€Π΅Π΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ свой Π²Ρ‹Π±ΠΎΡ€.
Π¨Π°Π³ 4. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» MAKE Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ ΠΈ Π½Π΅ содСрТит ошибок

Π’Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слСдили Π·Π° шагами, пСрСчислСнными Π² ΠΏΡƒΠ½ΠΊΡ‚Π°Ρ… 1-3, Π½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° всС Π΅Ρ‰Π΅ присутствуСт? Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ Ρ„Π°ΠΉΠ» ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ MAKE Ρ„Π°ΠΉΠ»ΠΎΠΌ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ.

1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ MAKE Ρ„Π°ΠΉΠ» Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ вирусов ΠΈΠ»ΠΈ врСдоносных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Если Ρ„Π°ΠΉΠ» Π·Π°Ρ€Π°ΠΆΠ΅Π½, врСдоносная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, находящаяся Π² Ρ„Π°ΠΉΠ»Π΅ MAKE, прСпятствуСт ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ. РСкомСндуСтся ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ вирусов ΠΈ врСдоносных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-антивирусный сканСр. MAKE Ρ„Π°ΠΉΠ» ΠΈΠ½Ρ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ врСдоносным ПО? Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям антивирусного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

2. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ MAKE Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ ΠΈ Π½Π΅ содСрТит ошибок

Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ MAKE Ρ„Π°ΠΉΠ» ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°? ΠŸΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅ Π΅Π³ΠΎ / Π΅Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π·. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ скопирован, Π° Π΄Π°Π½Π½Ρ‹Π΅ потСряли Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ доступ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Ссли процСсс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ MAKE Π±Ρ‹Π» ΠΏΡ€Π΅Ρ€Π²Π°Π½ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Ρ‹. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» снова ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ источника.

3. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²Π° доступа

БущСствуСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ с достаточными систСмными привилСгиями. Π’Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· своСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись с достаточными ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа. Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Xcode Makefile Script.

4. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ вашС устройство соотвСтствуСт трСбованиям для возмоТности открытия Visual C++

Если Π² систСмС нСдостаточно рСсурсов для открытия Ρ„Π°ΠΉΠ»ΠΎΠ² MAKE, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ всС Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ прилоТСния ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ.

5. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваша опСрационная систСма ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹

РСгулярно обновляСмая систСма, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Xcode Makefile Script. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· доступных ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ систСмы ΠΈΠ»ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ MAKE, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΌΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ старыС вСрсии Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ

Makefile — Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Makefile? Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ

Makefile — Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Makefile?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Makefile?

Make — это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Unix, прСдназначСнная для запуска выполнСния make-Ρ„Π°ΠΉΠ»Π°. Makefile — это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», содСрТащий ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ создаСтС ΠΈ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ makefile (ΠΈΠ»ΠΈ Makefile Π² зависимости ΠΎΡ‚ систСмы). ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, содСрТащСм этот make-Ρ„Π°ΠΉΠ», Π²Ρ‹ Π½Π°Π±Π΅Ρ€Π΅Ρ‚Π΅ make , ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² make-Ρ„Π°ΠΉΠ»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹. Если Π²Ρ‹ создаСтС нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² make, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ make.

Make отслСТиваСт врСмя послСднСго обновлСния Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²) ΠΈ обновляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ (Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат измСнСния), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ исходный Ρ„Π°ΠΉΠ» Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии. Если Ρƒ вас большая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с мноТСством исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ / ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ зависят Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС зависимыС Ρ„Π°ΠΉΠ»Ρ‹. Π‘Π΅Π· make-Ρ„Π°ΠΉΠ»Π° это Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ трудоСмкая Π·Π°Π΄Π°Ρ‡Π°.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ make-Ρ„Π°ΠΉΠ» — это список ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ написан для ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ make-Ρ„Π°ΠΉΠ».Makefile, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅.

Makefile содСрТит список ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ» . Π­Ρ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ систСмС, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв эти ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для компиляции (ΠΈΠ»ΠΈ пСрСкомпиляции) сСрии Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ Π² столбцС 1, состоят ΠΈΠ· Π΄Π²ΡƒΡ… частСй. ΠŸΠ΅Ρ€Π²Π°Ρ строка называСтся строкой зависимости , Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ дСйствиями ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ . Π‘Ρ‚Ρ€ΠΎΠΊΠ° (ΠΈ) дСйствий Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ отступ с табуляциСй.

ΠŸΠ ΠΠ’Π˜Π›Πž: Π›Π˜ΠΠ˜Π― Π—ΠΠ’Π˜Π‘Π˜ΠœΠžΠ‘Π’Π˜
[Π²ΠΊΠ»Π°Π΄ΠΊΠ°] Π›Π˜ΠΠ˜Π― Π”Π•Π™Π‘Π’Π’Π˜Π™

Линия зависимости состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ (ΠΏΠ΅Ρ€Π΅Π΄ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ) — это Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π° вторая Ρ‡Π°ΡΡ‚ΡŒ (послС двоСточия) — это исходных Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ называСтся Π»ΠΈΠ½ΠΈΠ΅ΠΉ зависимости, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ пСрвая Ρ‡Π°ΡΡ‚ΡŒ зависит ΠΎΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части. НСсколько Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ.НСсколько исходных Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ.

Π›Π˜ΠΠ˜Π― Π—ΠΠ’Π˜Π‘Π˜ΠœΠžΠ‘Π’Π˜: Π¦Π•Π›Π•Π’Π«Π• ЀАЙЛЫ : ИБΠ₯ΠžΠ”ΠΠ«Π• ЀАЙЛЫ

ПослС создания make-Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ (ΠΏΠ΅Ρ€Π΅) ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°Π±Ρ€Π°Π² make Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Make Π·Π°Ρ‚Π΅ΠΌ считываСт make-Ρ„Π°ΠΉΠ», создаСт Π΄Π΅Ρ€Π΅Π²ΠΎ зависимостСй ΠΈ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия. Он Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² make-Ρ„Π°ΠΉΠ»Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС зависимости ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π½ΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ. Он восстановит Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ссли ΠΎΠ½ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠ»ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² зависимостСй.

Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅, make остановится, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² процСссС построСния.


Π‘. М. Π“Π°Ρ€Π²Π΅Ρ€, вСсна 1998 Π³.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Makefile?

Makefile — это Ρ„ΠΎΡ€ΠΌΠ° Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ make для опрСдСлСния мСстополоТСния исходных Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Makefile ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ исходныС Ρ„Π°ΠΉΠ»Ρ‹, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ скомпилированы ΠΈ связаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ исполняСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠ³Π»Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ make-Ρ„Π°ΠΉΠ»Π° — Π²Π°ΠΆΠ½Ρ‹ΠΉ процСсс практичСски для всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ программирования.

Π–Π΅Π½Ρ‰ΠΈΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚ стойку Π½Π° Ρ€ΡƒΠΊΠ°Ρ… с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ make-Ρ„Π°ΠΉΠ» ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΎΠ½ являСтся Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ сцСнария, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ всСх ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² make-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Make ΠΌΠΎΠ³ΡƒΡ‚ нСсколько ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Однако Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ всС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ make Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ Π² Ρ‚Π°ΠΊΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, ΠΊΠ°ΠΊ Unix.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, make-Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ².КаТдоС ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ этого Ρ„Π°ΠΉΠ»Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НапримСр, Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π² строках тСкста Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ этих Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΡ‚ исходных Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Ρ‹Π»Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ. КаТдая Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, указанная Π² строках тСкста, Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ подмноТСства тСкста с отступом табуляции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ процСсс ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊ Π²Π²ΠΎΠ΄Ρƒ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

ИспользованиС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ make ΠΈ созданиС make-Ρ„Π°ΠΉΠ»Π° позволяСт ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ шаги, выполняСмыС Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ часто ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… прилоТСниях. Однако слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ make-Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ практичСски с Π»ΡŽΠ±Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ скомпилированного языкового прилоТСния. Из-Π·Π° ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ создания make-Ρ„Π°ΠΉΠ»Π° для программиста ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ строки тСкста Π² стратСгичСскиС Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ программирования.

Makefile Tutorial | Π£Ρ‡Π΅Π±Π½ΠΈΠΊΠΈ ΠΏΠΎ написанию сцСнариСв Perl, Python, Bash, Makefile ΠΈ Ρ‚. Π”.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ makefile:

Π€Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ инструктируСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ make, ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.Makefile ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² компиляции Ρ‚ΠΎΠΉ части ΠΊΠΎΠ΄Π°, которая измСняСтся ΠΈ зависит ΠΎΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ. Имя make-Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ — Β«MakefileΒ», Π½ΠΎ Ρƒ нас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ make-Ρ„Π°ΠΉΠ» с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ make, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

make -f my_makefile

Π—Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ makefile:

Когда Π½ΠΎΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠΎΠ΄Π° увСличиваСтся Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π’ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

1.КакиС всС Ρ„Π°ΠΉΠ»Ρ‹ зависят ΠΎΡ‚ Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Ρ‡Ρ‚ΠΎ всС Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ
2. НуТно Π»ΠΈ Π½Π°ΠΌ снова ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для ΠΏΠΎΠ»Π½ΠΎΠΉ компиляции нСбольшого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° трСбуСтся ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Makefile — это ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Makefile опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΈ опрСдСляСт, ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² зависит, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ….
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, это экономит врСмя ΠΈ усилия Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, Ссли Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ для Make-Ρ„Π°ΠΉΠ»ΠΎΠ².

Команда make позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ большими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Когда Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ большиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ повторная компиляция Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Π΅ΠΌ повторная компиляция ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с нСбольшим Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅), Π° большая Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° make ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, отслСТивая, ΠΊΠ°ΠΊΠΈΠ΅ части всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹, компилируя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнились с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй компиляции.

Makefile содСрТит инструкции для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Имя make-Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ — это Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ make-Ρ„Π°ΠΉΠ», Π½ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π—Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ, Ρ„Π°ΠΉΠ» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ содСрТит Ρ‚Ρƒ ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΈ Ρ„Π°ΠΉΠ» makefile. И Ρ„Π°ΠΉΠ» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ Ρ„Π°ΠΉΠ» makefile состоят ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² , строки зависимости , Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ , макросы , Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² , ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ строки ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ .

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ строк Makefile

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² make-Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ. Для облСгчСния чтСния Π΄Π»ΠΈΠ½Π½ΡƒΡŽ строку ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ, помСстив Β« \ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Β» Π² качСствС послСдних символов этой строки, Π° ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ Ρ‡Π°ΡΡ‚ΡŒ этой (логичСской) строки Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ (Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ) строку make-Ρ„Π°ΠΉΠ»Π°. НапримСр:

пСрвая_Ρ‡Π°ΡΡ‚ΡŒ_строки вторая_Ρ‡Π°ΡΡ‚ΡŒ_строки

совпадаСт с:

пСрвая_Ρ‡Π°ΡΡ‚ΡŒ_строки \
вторая_Ρ‡Π°ΡΡ‚ΡŒ_строки

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ [Π’Π²Π΅Ρ€Ρ…]

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ make-Ρ„Π°ΠΉΠ»Π° являСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обозначаСтся символом коммСнтария Β« # Β».Π’Π΅ΡΡŒ тСкст ΠΎΡ‚ символа коммСнтария Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки игнорируСтся. Π’ΠΎΡ‚ большой ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² make-Ρ„Π°ΠΉΠ»Π΅ для описания Π΅Π³ΠΎ содСрТимого:

 # 
# Makefile для Opus Make 6.1
#
# ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€: Microsoft C 6.0
# ΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ: Microsoft Link 5.10
#

Π‘ΠΈΠΌΠ²ΠΎΠ» коммСнтария ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° make-Ρ„Π°ΠΉΠ»Π°:

  Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ makefile  # ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ 
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ строк Makefile

Если Π² строкС с ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ появляСтся Β«\ enterΒ», ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ дСйствуСт Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки, Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка всС Π΅Ρ‰Π΅ продолТаСтся. НапримСр:

  line_one  \ 
line_two # more_line_two \
line_three

совпадаСт с:

  line_one   line_two line_three  

ΠŸΡ€Π°Π²ΠΈΠ»Π° [Π’Π²Π΅Ρ€Ρ…]

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ сообщаСт Make ΠΊΠ°ΠΊ , ΠΊΠΎΠ³Π΄Π° , Ρ‚Π°ΠΊ ΠΈ , ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ». Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ исходных Ρ„Π°ΠΉΠ»ΠΎΠ² main.c ΠΈ io.c, Π° Π·Π°Ρ‚Π΅ΠΌ свяТитС ΠΈΡ… для создания исполняСмого Ρ„Π°ΠΉΠ»Π° project.exe. НС вдаваясь Π² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС, Π²ΠΎΡ‚ make-Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Borland C, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ создания project.exe:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Makefile
 project.exe :  main.obj io.obj 
tlink c0s main.obj io.obj, project.exe ,, cs / Lf: \ bc \ lib
 main.obj :  main.c 
bcc –ms –c main.c
 io.obj :  io. c 
bcc –ms –c io.Π²

Π­Ρ‚ΠΎΡ‚ make-Ρ„Π°ΠΉΠ» ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ для создания project.exe, main.obj ΠΈ io.obj. ΠŸΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ явными ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ явно ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² make-Ρ„Π°ΠΉΠ»Π΅. Make Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π²ΠΎΠ΄Π° , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΠΎΠ±Ρ‰Π°ΡŽΡ‚ процСсс make. ΠŸΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π½Π° страницС ΠΈ Π² РуководствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° страницС.

ΠœΡ‹ вСрнСмся ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ…ΠΎΠ΄Π΅ этого руководства.

Π›ΠΈΠ½ΠΈΠΈ зависимости: ΠΊΠΎΠ³Π΄Π° ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡŒ [Π’Π²Π΅Ρ€Ρ…]

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ с Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ Β«: Β» Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ строками зависимости .Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ восстановлСна.

Π‘Π»Π΅Π²Π° ΠΎΡ‚ двоСточия находится Ρ†Π΅Π»ΡŒ зависимости. Π‘ΠΏΡ€Π°Π²Π° ΠΎΡ‚ двоСточия находятся источника [1], Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для создания мишСни. Π’ строкС зависимости говорится, Ρ‡Ρ‚ΠΎ Β«Ρ†Π΅Π»ΡŒ зависит ΠΎΡ‚ источников». НапримСр, строка:

 project.exe :  main. obj io.obj 

ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ project.exe зависит ΠΎΡ‚ main.obj ΠΈ io.obj. Π’ΠΎ врСмя выполнСния Make сравниваСт врСмя этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.exe Π±Ρ‹Π» послСдний Ρ€Π°Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π½Π° врСмя послСднСго измСнСния main.obj ΠΈ io.obj. Если ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ источник Π½Π° Π½ΠΎΠ²Π΅Π΅, Ρ‡Π΅ΠΌ Π½Π° , Ρ‡Π΅ΠΌ project.exe, Make пСрСстраиваСт project.exe. ВрСмя послСднСго измСнСния — это врСмя Ρ†Π΅Π»ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π­Ρ‚ΠΎ врСмя Ρ‚Π°ΠΊΠΆΠ΅ извСстно ΠΊΠ°ΠΊ врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° Ρ†Π΅Π»ΠΈ .

РСкурсивный процСсс создания

Основная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Make Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ источники Ρ†Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ происходит сравнСниС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ. Линия:

 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.exe: main.obj io.obj 

ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Β«ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ main.obj ΠΈ io.obj ΠΏΠ΅Ρ€Π΅Π΄ сравнСниСм ΠΈΡ… ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с project.exeΒ». По ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ:

 main.obj: main.c 

Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: Β«Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ main.c ΠΏΠ΅Ρ€Π΅Π΄ сравнСниСм Π΅Π³ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с main. objΒ». Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли main.c Π½ΠΎΠ²Π΅Π΅, Ρ‡Π΅ΠΌ main.obj, main.obj Π±ΡƒΠ΄Π΅Ρ‚ пСрСстроСн. Π’Π΅ΠΏΠ΅Ρ€ΡŒ main.obj Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Π΅Π΅, Ρ‡Π΅ΠΌ project.exe, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ пСрСсборкС project.exe.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ зависимости

Π’ C ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π° Π² Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ компилируСтся.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ скомпилированный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ зависит ΠΎΡ‚ содСрТимого Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΌΡ‹ добавляСм Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ источник Ρ„Π°ΠΉΠ»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° .

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· main.c ΠΈ io.c Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ def.h. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π²Π΅ строки зависимости Π² make-Ρ„Π°ΠΉΠ»Π΅:

 main.obj: main.c  становится  main.obj: main.c def.h 
io.obj: io.c становится io.obj: io.c def.h

ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСчислСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ зависимости:

 основной.obj io.obj: def.h 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ слСва ΠΎΡ‚ двоСточия Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ†Π΅Π»ΠΈ. Π­Ρ‚Π° строка ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈ main.obj, ΠΈ io.obj зависят ΠΎΡ‚ def.h. Π›ΡŽΠ±ΠΎΠΉ ΠΈΠ· этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² эквивалСнтСн. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ make-Ρ„Π°ΠΉΠ»Π° выглядит Ρ‚Π°ΠΊ:

 project.exe :  main.obj io.obj 
tlink c0s main.obj io.obj, project.exe ,, cs / Lf: \ bc \ lib
 main.obj :  main.c 
bcc –ms –c main.c
 io.obj :  io.c 
bcc –ms –c io.c

main.obj io.obj: Π²ΠΊΠ». H

Π›ΠΈΠ½ΠΈΠΈ снаряда: ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡŒ [Π’Π²Π΅Ρ€Ρ…]

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ с отступом, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ зависимости, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ линиями ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ . Π›ΠΈΠ½ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ говорят Make, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡŒ. НапримСр:

 project.exe: main.obj io.obj 
tlink c0s main.obj io.obj, project.exe ,, cs / Lf: \ bc \ lib

Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.exe Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ tlink для связывания main.obj ΠΈ io.obj. Π­Ρ‚Π° строка ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли main. obj ΠΈΠ»ΠΈ io.obj Π½ΠΎΠ²Π΅Π΅, Ρ‡Π΅ΠΌ project.exe.

Для tlink c0s — это запускаСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» нСбольшой ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° cs — это нСбольшая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π€Π»Π°Π³ / Lf: \ bc \ lib сообщаСт tlink, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» запускаСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ f: \ bc \ lib.

Π£ Ρ†Π΅Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько строк ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, пСрСчислСнных ΠΎΠ΄Π½Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.exe: main.obj io.obj 
echo БвязываниС project.exe
tlink c0s main.obj io.obj, project.exe ,, cs / Lf: \ bc \ lib> tlink.out

ΠŸΠ΅Ρ€Π²Π°Ρ строка ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ процСссора ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Make. Вторая строка ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π°, Π³Π΄Π΅ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ tlink пСрСнаправляСтся Π² Ρ„Π°ΠΉΠ» tlink.out.

ПослС выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Make провСряСт строку ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ , Π²Ρ‹Ρ…ΠΎΠ΄ статус . По соглашСнию, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ 0 (ноль) статус Π²Ρ‹Ρ…ΠΎΠ΄Π°, Ссли ΠΎΠ½ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π΅Π· ошибок, ΠΈ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли ошибка ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π°. ΠŸΠ΅Ρ€Π²Π°Ρ строка ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ статус Π²Ρ‹Ρ…ΠΎΠ΄Π° , заставляСт Make ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ сообщСниС:

 OPUS MAKE: статус Π²Ρ‹Ρ…ΠΎΠ΄Π° Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ  exit_status . Π‘Ρ‚ΠΎΠΏ. 

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ выполняСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ. НСкоторыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ статус Π²Ρ‹Ρ…ΠΎΠ΄Π°, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Make ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ статус Π²Ρ‹Ρ…ΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСфикса строки ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ . ΠŸΡ€Π΅Ρ„ΠΈΠΊΡΡ‹ — это символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Make со строкой ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.НапримСр:

 project.exe: main.obj io.obj 
- tlink c0s main.obj io.obj, project.exe ,, cs / Lf: \ bc \ lib

ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ Β«-Β» ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Make ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ статус Π²Ρ‹Ρ…ΠΎΠ΄Π° строки ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Если статус Π²Ρ‹Ρ…ΠΎΠ΄Π° Π±Ρ‹Π» Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ, Make ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ сообщСниС:

 OPUS MAKE: статус Π²Ρ‹Ρ…ΠΎΠ΄Π° Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ  exit_status  (игнорируСтся) 

Π‘ΠΌ. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρƒ для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ строках ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ прСфиксах строк ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ [Π’Π²Π΅Ρ€Ρ…]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ make-Ρ„Π°ΠΉΠ»Π° воспроизводится здСсь:

 project.exe: main.obj io.obj 
tlink c0s main.obj io.obj, project.exe ,, cs / Lf: \ bc \ lib
 main.obj: main.c 
bcc –ms –c main.c
 io.obj: io.c 
bcc –ms –c io.c
 main.obj io.obj: def.h 

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ тСкст Β«main.obj io.objΒ» встрСчаСтся Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ тСкста, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ макроса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ тСксту символ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ макросов Π² Makefile

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ макроса Π‘Ρ‚Ρ€ΠΎΠΊΠ° — это строка make-Ρ„Π°ΠΉΠ»Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ макроса , Π·Π½Π°ΠΊΠΎΠΌ равСнства Β« = Β» ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ макроса . Π’ make-Ρ„Π°ΠΉΠ»Π΅ выраТСния Π²ΠΈΠ΄Π° $ ( имя ) ΠΈΠ»ΠΈ $ { имя } Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ . Если имя макроса состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹, скобки Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ (, Ρ‚.Π΅. $ X, $ (X) ΠΈ $ {X} ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Β«Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ макроса XΒ»).

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, написанный Π²Ρ‹ΡˆΠ΅ с Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… макросов:

 OBJS = main.obj io.obj 
ΠœΠžΠ”Π•Π›Π¬ = s
CC = bcc
CFLAGS = –m $ (ΠœΠžΠ”Π•Π›Π¬)
 project.exe: $ (OBJS) 
tlink c0 $ (ΠœΠžΠ”Π•Π›Π¬) $ (OBJS), project.exe ,, c $ (ΠœΠžΠ”Π•Π›Π¬) / Lf: \ bc \ lib
 main.obj: main.c 
$ (CC) $ (CFLAGS) –c main.c
 io.obj: io.c 
$ (CC) $ (CFLAGS) –c io.c
 $ (OBJS): Π² Ρ‚.Ρ‡. 

Ρ‡.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ макроса OBJS — это список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² для компиляции.ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ макросов для MODEL, CC ΠΈ CFLAGS Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ модСль памяти компилятора, имя компилятора C ΠΈ Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

Make автоматичСски ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды Π² Π²ΠΈΠ΄Π΅ макросов, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PATH, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ выраТСния $ (PATH) make-Ρ„Π°ΠΉΠ»Π°.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ макросов Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Make. НапримСр:

 ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ CFLAGS = –ms 

запустит Make ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ макрос CFLAGS со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ «–msΒ».ΠœΠ°ΠΊΡ€ΠΎΡΡ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π°Π΄ макросами с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π² make-Ρ„Π°ΠΉΠ»Π΅.

Если макрос ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки содСрТит ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ "CFLAGS = -ms -z -p" 
ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния

Make опрСдСляСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ макросы, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ динамичСски. Π­Ρ‚ΠΈ макросы Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строящСйся Ρ†Π΅Π»ΠΈ. НапримСр, макрос .TARGET — это имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ†Π΅Π»ΠΈ, .ΠœΠ°ΠΊΡ€ΠΎΡ SOURCE [2] — это имя ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ источника (ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π²ΠΎΠ΄Π°) ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· явных источников, Π° макрос .SOURCES [3] — это список всСх источников.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ макросы Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 OBJS = main.obj io.obj 
CC = bcc
ΠœΠžΠ”Π•Π›Π¬ = s
CFLAGS = –m $ (ΠœΠžΠ”Π•Π›Π¬)
 project.exe: $ (OBJS) 
tlink c0 $ (ΠœΠžΠ”Π•Π›Π¬) $ (OBJS), $ (. TARGET) ,, c $ (ΠœΠžΠ”Π•Π›Π¬) / Lf: \ bc \ lib
 основной.obj: main.c 
$ (CC) $ (CFLAGS) –c $ (. SOURCE)
 io.obj: io.c 
$ (CC) $ (CFLAGS) –c $ (. SOURCE)
 $ (OBJS): Π² Ρ‚.Ρ‡. 

Ρ‡.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, строки ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для обновлСния main.obj ΠΈ io.obj ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ ΠΏΡ€ΠΈ использовании макросов Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Π²Π°ΠΆΠ½Ρ‹ для обобщСния процСсса сборки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π°Π²ΠΈΠ» Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° страницС.

ΠœΠ°ΠΊΡ€ΠΎΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ [Π’Π²Π΅Ρ€Ρ…]

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ количСства ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ тСкста.Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… Π²Ρ‹Π²ΠΎΠ΄Π° для обобщСния процСсса сборки. ΠœΡ‹ часто Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ со значСния макроса ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· макроса OBJS, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

 SRCS = $ (OBJS, .obj = .c) 

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ°ΠΊΡ€ΠΎΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Β« ΠΎΡ‚ = Π΄ΠΎ Β» для Π·Π°ΠΌΠ΅Π½Ρ‹ тСкста ΠΈΠ· Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ OBJS тСкстом ΠΎΡ‚ Π΄ΠΎ . Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ $ (SRCS) являСтся «основным.c io.c Β». ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для измСнСния макроса Ρ€Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π½Π°:

 $ ( имя ,  ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€  [,  ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€  ...]) 

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ примСняСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ name . ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ отдСляСтся ΠΎΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ запятой.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π½Π°Π±ΠΎΡ€ ΠΌΠ°ΠΊΡ€ΠΎΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² для доступа ΠΊ частям ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². НапримСр, с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ макроса:

 SRCS = d: \ src \ main.c io.asm 

НСкоторыС ΠΈΠ· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²:

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ описаниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
D, справочник $ (SRCS, D) Π΄: \ src.
E, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ суффикс) $ (SRCS, E) .c .asm
F, имя Ρ„Π°ΠΉΠ»Π° $ (SRCS, Π€) основной.c io.asm
Π’ΠΎΠΊΠ΅Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ — это ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Β«W str Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ замСняСт ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами макроса строкой str . str ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ смСсью ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… символов ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ являСтся Β«\ nΒ», которая прСдставляСт собой символ Π½ΠΎΠ²ΠΎΠΉ строки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Π²Π²ΠΎΠ΄Π°). НапримСр:

 $ (OBJS, W ΠΏΡ€ΠΎΠ±Π΅Π» + \ n) - это main.obj + 
io.obj
Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚: Β«@Β» (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π°), Β«LCΒ» (Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр), Β«UCΒ» (Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр), Β«MΒ» (Ρ‡Π»Π΅Π½) ΠΈ Β«NΒ» (Π½Π΅ Ρ‡Π»Π΅Π½). ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Β«MΒ» ΠΈ Β«NΒ» ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Β«SΒ» (подстановка) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ ΠΈ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ сопоставлСния с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ. Π‘ΠΌ. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρƒ для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ±ΠΎ всСх ΠΌΠ°ΠΊΡ€ΠΎΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ….

ΠŸΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π²ΠΎΠ΄Π° [Π’Π²Π΅Ρ€Ρ…]

ΠŸΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±ΠΎΠ±Ρ‰Π°ΡŽΡ‚ процСсс сборки, поэтому Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ явноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ†Π΅Π»ΠΈ.НапримСр, компиляция исходного ΠΊΠΎΠ΄Π° C (Ρ„Π°ΠΉΠ»Ρ‹ .c) Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ (Ρ„Π°ΠΉΠ»Ρ‹ .obj) являСтся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ явлСниСм. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ утвСрТдСния, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» .obj зависит ΠΎΡ‚ Ρ„Π°ΠΉΠ»Π° .c с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Make ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° для Π²Ρ‹Π²ΠΎΠ΄Π° этой зависимости. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ, опрСдСляСмый ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π°, называСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΌ источником .

ΠŸΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π²ΠΎΠ΄Π° — это ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ использованиСм символа Β«%Β» Π² строкС зависимости. Β«%Β» ( символ ΠΏΡ€Π°Π²ΠΈΠ»Π° ) — это подстановочный Π·Π½Π°ΠΊ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π½ΡƒΠ»ΡŽ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ символам.Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° для создания Ρ„Π°ΠΉΠ»ΠΎΠ² .obj ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² .c:

% .obj:% .c 
$ (CC) $ (CFLAGS) –c $ (. SOURCE)

Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ гласит, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» . obj ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создан ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° .c со строкой ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Β«$ (CC) $ (CFLAGS) –c $ (. SOURCE)Β». Π€Π°ΠΉΠ»Ρ‹ .c ΠΈ .obj ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.

Если исходный ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ способом:

.c.obj: 
$ (CC) $ (CFLAGS) –c $ (. SOURCE)

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° совмСстима с Opus Make Π΄ΠΎ этой вСрсии ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ make ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ обсуТдаСтся Π½Π° страницС.

Make прСдопрСдСляСт ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Β«% .obj:% .cΒ», ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, поэтому ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ сСйчас Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ, становится Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅:

 OBJS = main.obj io.obj 
CC = bcc
ΠœΠžΠ”Π•Π›Π¬ = s
CFLAGS = –m $ (ΠœΠžΠ”Π•Π›Π¬)
 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.exe: $ (OBJS) 
tlink c0 $ (ΠœΠžΠ”Π•Π›Π¬) $ (OBJS), $ (. TARGET) ,, c $ (ΠœΠžΠ”Π•Π›Π¬) / Lf: \ bc \ lib
 $ (OBJS): Π² Ρ‚.Ρ‡. 

Ρ‡.

Π€Π°ΠΉΠ»Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² [Π’Π²Π΅Ρ€Ρ…]

Для MS-DOS, OS / 2 ΠΈ Win95 сущСствуСт довольно ТСсткоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π»ΠΈΠ½Ρƒ строки ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ строка ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ часто Π±Ρ‹Π²Π°Π΅Ρ‚ слишком ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ для ΠΌΠ½ΠΎΠ³ΠΈΡ… компиляторов ΠΈ слишком ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ€Π΅ΠΉ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ².Opus Make ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²: Ρ„Π°ΠΉΠ»Ρ‹ автоматичСских ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² , Π³Π΄Π΅ Make Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ; встроСнныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² , Π³Π΄Π΅ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ создания Ρ„Π°ΠΉΠ»Π° ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² нСпосрСдствСнно Π² make-Ρ„Π°ΠΉΠ»Π΅.

Π€Π°ΠΉΠ»Ρ‹ автоматичСского ΠΎΡ‚Π²Π΅Ρ‚Π°

Make ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ², Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ€Π΅ΠΉ ΠΈ компиляторов, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Make, написав свои собствСнныС опрСдСлСния (см. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρƒ). Π‘ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Make Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² свой make-Ρ„Π°ΠΉΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

.RESPONSE.LINK: tlink

Π­Ρ‚ΠΎ сообщаСт Make, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° tlink ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π² стилС LINK. Когда строка ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ выполняСт tlink, Make провСряСт, Π΄Π»ΠΈΠ½Π½Π΅Π΅ Π»ΠΈ строка ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Ρ‡Π΅ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, ΠΈ ΠΏΡ€ΠΈ нСобходимости автоматичСски создаСт Ρ„Π°ΠΉΠ» ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ².

Π€Π°ΠΉΠ»Ρ‹ встроСнных ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

Π€Π°ΠΉΠ»Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ встроСны Π² ваш make-Ρ„Π°ΠΉΠ». Π’ΠΎΡ‚ строка ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ tlink, написанная для использования встроСнного Ρ„Π°ΠΉΠ»Π° ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²:

 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.exe: $ (OBJS) 
tlink @ <<
c0 $ (MODEL) $ (. SOURCES, W + \ n)
$ (. TARGET)

c $ (MODEL) / Lf: \ bc \ lib
<<

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° tlink вызываСтся ΠΊΠ°ΠΊ Β«tlink @ response_file Β», Π³Π΄Π΅ response_file — это имя, сгСнСрированноС Make. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ макроса Β«W + \ nΒ» замСняСт ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами $ (. SOURCES) Π½Π° Β«+ Π²Π²ΠΎΠ΄Β». response_file содСрТит:

 c0s main.obj + 
io.obj ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
.exe

c0 / f: \ bc \ lib

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Makefile [Π’Π²Π΅Ρ€Ρ…]

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Makefile ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ строками make-Ρ„Π°ΠΉΠ»Π°. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π²ΠΎ врСмя чтСния. Π’ΠΎΡ‚ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ условными Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ (% if,% elif,% else ΠΈ% endif) для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ компиляторов Borland ΠΈ Microsoft. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

 # Π­Ρ‚ΠΎΡ‚ make-Ρ„Π°ΠΉΠ» ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² макросС PROJ 
#
PROJ = project # имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
OBJS = main.obj io.obj # список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²
 # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ: 
#
MODEL = s # модСль памяти
CC = bcc # имя компилятора
 # Π Π°Π·Π΄Π΅Π», зависящий ΠΎΡ‚ компилятора 
#
% if $ (CC) == bcc # Ссли компилятор - bcc
CFLAGS = –m $ (MODEL) # $ (CFLAGS) is –ms
LDSTART = c0 $ (MODEL) # Ρ„Π°ΠΉΠ» запускаСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
LDLIBS = c $ (MODEL) # Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°
LDFLAGS = / Lf: \ bc \ lib # f: \ bc \ lib - ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
% elif $ (CC) == cl # ΠΈΠ½Π°Ρ‡Π΅, Ссли компилятор cl
CFLAGS = –A $ (MODEL, UC) # $ (CFLAGS) is –AS
LDSTART = # Π±Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ запуска
LDLIBS = # Π±Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
LDFLAGS = / Lf: \ c6 \ lib; # f: \ c6 \ lib - это ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
% else # else
% abort Unsupported CC == $ (CC) # компилятор Π½Π΅ поддСрТиваСтся
% endif # endif
 # Бтроящийся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ 
#
$ (PROJ).exe: $ (OBJS)
tlink $ (LDSTART) $ (OBJS), $ (. TARGET) ,, $ (LDLIBS) $ (LDFLAGS)
 $ (OBJS): Π² Ρ‚.Ρ‡. 

Ρ‡.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° этого make-Ρ„Π°ΠΉΠ»Π° довольно Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Π° — макросы ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ, основная Ρ†Π΅Π»ΡŒ слСдуСт Π·Π° макросами, Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ зависимостях ΠΈΠ΄Π΅Ρ‚ послСднСй.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°% abort для прСрывания Make, Ссли make-Ρ„Π°ΠΉΠ» Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ компилятор. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ врСмя выполнСния для управлСния строками ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выполняСт Make.Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ… см. Page.

ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .txt ΠΈ .cmake Π² CMake?

ΠŸΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ Π΄ΠΎΠΊ.

Π― ΠΌΠ°Π»Ρ‹Ρˆ. А Ссли ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ, Π΅ΡΡ‚ΡŒ руководства для чтСния. Π― ΠΏΡ€ΠΈΠ·Π½Π°ΡŽ, Ρ‡Ρ‚ΠΎ CMake довольно слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройкС ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ чСртовски ΠΊΡ€ΡƒΡ‚Ρ‹ΠΌ.Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, я Π΄Π°ΠΌ Π²Π°ΠΌ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ прямо Π½Π° ваш вопрос, Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» .txt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вас интСрСсуСт, — это CMakeLists.txt. Π­Ρ‚ΠΎ основной Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ CMake, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ создании вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Когда Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ CMake, ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚, — это ΠΈΡ‰Π΅Ρ‚ этот Ρ„Π°ΠΉΠ». ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ рСбята ΠΈΠ· OpenCV помСстили довольно ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎΠ΅ количСство ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ, нСсмотря Π½Π° Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΎΠ½ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ для CMakeLists.txt Ρ„Π°ΠΉΠ».

Если Π²Ρ‹ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠ· Π΄ΠΎ строки 108, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ сборки. (CMake Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ графичСский интСрфСйс, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ придСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CMakeLists.txt!) Бинтаксис ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡˆΠ΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΠΌ сначала ΠΈΠ·-Π·Π° абсурдного количСства доступных ΠΎΠΏΡ†ΠΈΠΉ, Π½ΠΎ Ссли Π²Ρ‹ Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚Π΅, Π²Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ это довольно просто. Π‘Ρ‚Ρ€ΠΎΠΊΠ° 113 ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ IEEE1394 ΠΈΠ»ΠΈ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ «ON» Π½Π° «OFF», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ настройки Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ проста.

Π˜Ρ‚Π°ΠΊ, посмотрим Π½Π° Ρ„Π°ΠΉΠ»Ρ‹ * .cmake. Π§Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΠΎ ΠΈΡ… ΠΈΠΌΠ΅Π½Π°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… — это просто ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ сборки ΠΈΠ»ΠΈ сцСнарии для поиска Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π½Π΅ΡˆΠ½ΠΈΡ… / сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ЧСстно говоря, ΠΊΡ€Π°ΠΉΠ½Π΅ маловСроятно, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ создадитС Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ OpenCV.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ? Из ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки! (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ я Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Ρ€Π°Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ CMakeGui, ΠΈ это Ρ‚ΠΎΠΆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΌΠΎΠΉ быстрый ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ для unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки) Но Π½Π° самом Π΄Π΅Π»Π΅ всС сводится ΠΊ нСскольким ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ:

Из ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Ρ‚ΠΎΡ‚, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ CMakeLists.txt:

  сборка mkdir
cd build /
cmake ..
ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ
  

И Π³ΠΎΡ‚ΠΎΠ²ΠΎ.

Если это Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ сборки, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рСкомСндуСтся Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ сборки ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ основных Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° — это CMake Π² дСйствии. Он Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π½Π°Π΄ сборкой (Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит CMakeLists.txt) ΠΈ Π½Π°Ρ‡Π½Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ сборки. Бюда Π²Ρ…ΠΎΠ΄ΠΈΡ‚ поиск Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Π°ΡˆΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ установка Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΡƒΡ‡ΠΈ тСкста Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ Π»ΠΈ CMake Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ ΠΈΠ»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ, Ссли это ΡƒΠ΄Π°Π»ΠΎΡΡŒ, ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… установлСнных Π²Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ всС эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² CMakeLists.txt. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ Π²Ρ‹ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, make — это общая ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая ΠΈΡ‰Π΅Ρ‚ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Makefile (ΠΎΠ½ Π±Ρ‹Π» сгСнСрирован, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ cmake). На этом шагС Π±ΡƒΠ΄Π΅Ρ‚ скомпилирован OpenCV ΠΈ установлСны Ρ„Π°ΠΉΠ»Ρ‹ Π² Π²Π°ΡˆΡƒ систСму. … (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅)

MAKE File — Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ MAKE

1 Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ (Π°) ΠΈ 0 псСвдонимов Π² нашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

НиТС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы:

  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ .ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»?
  • Какая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .make ?
  • Π“Π΄Π΅ Π½Π°ΠΉΡ‚ΠΈ описаниС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° .make ?
  • Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .make Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚?
  • Какой MIME-Ρ‚ΠΈΠΏ связан с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .make ?

.make

Ѐайл создания Xcode

MAKE являСтся Ρ„Π°ΠΉΠ»ΠΎΠΌ Xcode Make . Xcode — это Π½Π°Π±ΠΎΡ€ инструмСнтов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Apple для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Mac OS X ΠΈ iOS.

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ: Π€Π°ΠΉΠ»Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

НазваниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: —

Mime-Ρ‚ΠΈΠΏ: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / ΠΎΠΊΡ‚Π΅Ρ‚-ΠΏΠΎΡ‚ΠΎΠΊ

ΠœΠ°Π³ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π±Π°ΠΉΡ‚Ρ‹ (HEX): —

Π’ΠΎΠ»ΡˆΠ΅Π±Π½Π°Ρ строка (ASCII): —

ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹:

Бсылки:

БвязанныС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Xcode

Apple Project Builder Xcode Project

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Xcode

МодСль управляСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Xcode

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° управляСмой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Xcode

Π€Π°ΠΉΠ» ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ Xcode

Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Xcode

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Xcode

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ схСмы Xcode

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° . Если Ρƒ вас Π΅ΡΡ‚ΡŒ полСзная информация ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .make , Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½Π°ΠΌ!

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° написано Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

ΠœΡ‹ нашли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π² нашСй Π±Π°Π·Π΅:

Мой пСрсонаТ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π°Π²Π°Ρ‚Π°Ρ€ΠΎΠ²

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° .make часто даСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ!

Богласно поисковым запросам Π½Π° нашСм сайтС, эти орфографичСскиС ошибки Π±Ρ‹Π»ΠΈ самыми распространСнными Π·Π° послСдний Π³ΠΎΠ΄:

mae (1),
ΠΌΠ°ΠΊ (1),
мкэ (1)

НС удаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ».ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»?

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .make Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π²Π°ΠΌ просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ вас Π±Ρ‹Π»Π° установлСна β€‹β€‹ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Если ассоциация .make установлСна β€‹β€‹Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС ΠΎΠ± ошибкС:

Windows Π½Π΅ удаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ»:

Π€Π°ΠΉΠ»: example.make

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ», Windows Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ. Windows ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΉΡ‚ΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ для автоматичСского поиска, ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· списка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, установлСнных Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Для измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ассоциаций:

  • Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, Π°ΡΡΠΎΡ†ΠΈΠ°Ρ†ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ .
  • Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠžΠ±Π·ΠΎΡ€ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.
  • Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ этот Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°, установитС Ρ„Π»Π°ΠΆΠΎΠΊ.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы

Windows Server 2003/2008/2012/2016, Windows 7, Windows 8 , Windows 10 , Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X , iOS, Android

ΠžΡ†Π΅Π½ΠΈΡ‚ΡŒ страницу

5/5 Π½Π° основС ΠΎΡ†Π΅Π½ΠΊΠΈ 26 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Express ΠŸΡ€ΠΈΠΌΠ΅Ρ€ «Hello World»

Embedded Π½ΠΈΠΆΠ΅ — это, ΠΏΠΎ сути, самоС простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Express, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ — , Π° Π½Π΅ , Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Express, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт основу для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ прилоТСния с многочислСнными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ JavaScript, шаблонами Jade ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.

 
const express = require ('экспрСсс')
const ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ = экспрСсс ()
const ΠΏΠΎΡ€Ρ‚ = 3000

app.get ('/', (req, res) => {
  Ρ€Π΅Π·.send ('ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!')
})

app.listen (ΠΏΠΎΡ€Ρ‚, () => {
  console.log (`ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния, ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ http: // localhost: $ {port}`)
})
  

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСт сСрвСр ΠΈ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ€Ρ‚ 3000 Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Β«Hello World!Β» для запросов
ΠΊ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌΡƒ URL (/) ΠΈΠ»ΠΈ ΠΏΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ . Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΎΠ½ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ сообщСниСм 404 Not Found .

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° самом Π΄Π΅Π»Π΅ являСтся Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ сСрвСром: Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ URL. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ с ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° страницС, ΠΈ Π»ΡŽΠ±Ρ‹Π΅ внСсСнныС Π²Π°ΠΌΠΈ измСнСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° RunKit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΡƒ для JavaScript, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΡƒΡŽ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ срСдС Node, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² вашСм Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.
НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ инструкции ΠΏΠΎ запуску Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ прилоТСния Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

RunKit — это сторонний сСрвис, Π½Π΅ связанный с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Express.

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ локально

Π‘Π½Π°Ρ‡Π°Π»Π° создайтС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ myapp , ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ ΠΈ запуститС npm init . Π—Π°Ρ‚Π΅ΠΌ установитС express Π² качСствС зависимости Π² соотвСтствии с руководством ΠΏΠΎ установкС.

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ myapp создайтС Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ app.js ΠΈ скопируйтС ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

req (запрос) ΠΈ res (ΠΎΡ‚Π²Π΅Ρ‚) — это Ρ‚Π΅ ΠΆΠ΅ самыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставляСт Node, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ
req.pipe () , req.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *