русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Make

У вас, ймовірно, постало питання: чи можна не компілювати файли проекту kalkul2 окремо, а зібрати відразу всю програму однією командою? Можна.

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


І відразу ж у нашому проекті з'являються і об'єктні файли і виконуваний.

Програма make якраз і призначена для інтерпретації команд, що знаходяться у файлі зі стандартним назвою Makefile.

Розглянемо його структуру.

Makefile є списком правил. Кожне правило починається з вказівника, званого «Мета». Після нього варто двокрапку, а далі через пропуск вказуються залежності. У нашому випадку ясно, що кінцевий файл kalkul залежить від об'єктних файлів calculate.o і main.o. Тому вони повинні бути зібрані перш складання kalkul. Після залежностей пишуться команди. Кожна команда повинна знаходитися на окремому рядку, і відділятися від початку рядка клавішею Tab. Структура правила Makefile може бути дуже складною. Там можуть бути присутніми змінні, конструкції розгалуження, циклу. Це питання вимагає окремого детального вивчення.

Якщо ми подивимося на три перших правила, то вони нам добре зрозумілі. Там ті ж самі команди, якими ми вже користувалися. А що ж означають правила clean, install, uninstall?r

правило clean варто команда rm, що видаляє виконуваний і об'єктні файли. Прапор-f означає, що, якщо видалене файл відсутній, програма повинна це проігнорувати, не видаючи ніяких повідомлень. Отже, правило clean призначено для «очищення» проекту, приведення його до такого стану, у якому він був до команди make.

Запустіть

make


З'явилися об'єктні файли і виконуваний. Тепер


make clean


Об'єктні та виконуваний файли зникли. Залишилися лише c-файли, h-файл і сам Makefile.
тобто проект «очистився» від результатів команди make.

Правило install поміщає виконуваний файл у каталог /usr/local/bin - стандартний каталог розміщення програм користувача. Це означає, що її можна буде викликати з будь-якого місця простим набором її імені. Але поміщати що-або в цей каталог можна тільки, зайшовши в систему під адміністратор». Для цього треба дати команду : su набрати пароль «адміністратора». В іншому випадку система вкаже, що вам відмовлено в доступі. Вихід з «адміністратора» здійснюється командою exit.

Отже,


make
su
make install
exit

Тепер ви можете запустити програму, просто ввівши ім'я програми, без прописування шляху.


kalkul

Можете відкрити каталог /usr/local/bin. Там повинен з'явитися файл з назвою kalkul.

Давайте тепер «приберемо за собою», не будемо засмічувати систему.


su
make uninstall
exit

Перегляньте каталог /usr/local/bin. Файл kalkul зник. Отже, правило uninstall видаляє програму з системного каталогу.

Переглядів: 10967

Повернутися в зміст:ОС Linux




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн