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
ΠΌΠ°ΠΊΠΈΠ½ΡΠΎΡ |
|
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 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
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅
make
ΠΈ Makefile- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Makefile
- ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
- Π€Π°Π»ΡΡΠΈΠ²Π°Ρ ΡΠ΅Π»Ρ
- ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ
- ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
- ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΠΆΠΈΠ·Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π°ΠΉΠ΄ΡΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ Π΄Π΅Π½Ρ Ρ Π½ΠΎΠ²ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ. ΠΠΎΡΠ»Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΡΡΡΠΏΠ°Π΅Ρ ΡΡΠ°ΠΏ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ ΡΠ»Π°Π³Π°ΠΌΠΈ ΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ΅Π· ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
# 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 ΠΌΠ΅ΡΡΡΠ΅Π², ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠ½ΡΠ΅ Π²ΡΠΏΡΡΠΊΠ½ΠΈΠΊΠΈ ΠΊΡΡΡΠ° ΡΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠΉΡΠΈ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ². ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ΅Π±Ρ Π½Π° Π²ΡΡΡΠΏΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΡΠ΅ ΠΈ ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π΅ΡΠ°Π»ΡΠ½Π΅Π΅ ΠΏΠΎ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ : |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ Π΄ΠΈΡΠΊ, Π»ΠΈΠ±ΠΎ Π½Π° ΡΠΎΡΡΠΎΠ²ΡΠΉ 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 \ libmain.obj : main.c
bcc βms βc main.cio.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 \ libmain.obj : main.c
bcc βms βc main.cio.obj : io.c
bcc βms βc io.cmain.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 \ libmain.obj: main.c
bcc βms βc main.cio.obj: io.c
bcc βms βc io.cmain.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 \ libmain.obj: main.c
$ (CC) $ (CFLAGS) βc main.cio.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 ΠΏΡΠΎΠ΅ΠΊΡ
.exec0 / 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.