Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Створення програми




 

Розробка програми починається зі створення вихідних файлів, що містять текст мовою Си. Текстові файли виробляються за допомогою одного з текстових редакторів, підтримуваних у середовищі UNIX.

Хоча UNIX-Файли не мають розширень, задаємо створеному файлу розширення для того, щоб його міг розпізнати компілятор.

.c для мови С и.сс (або.С) для З++.

Програма може включати файли заголовків. Для цього використовується директива #include <ім'я заголовка>

Наприклад,

#include <fcntl.h>

При цьому якщо ім'я файлу укладене в уголковые дужки, це означає, що пошук файлу буде вироблятися в загальноприйнятих каталогах зберігання файлів заголовків. Якщо ж ім'я файлу заголовка укладено в лапки, то використовується явно зазначене або відносне ім'я файлу.

 

Таблиця 1

Зміст основних заголовних файлів

Файл заголовка Призначення
<assert.h> Містить прототип функції assert, що використовується для діагностики
<cpio.h> Містить визначеннящо використовується для файлових архівів cpio
<ctype.h> Містить визначення символьних типів, а також прототипи функцій класів символів
<dirent.h> Містить визначення структур даних каталогу, а також фунцій для роботи з каталогами
<errno.h> Містить визначення кодів помилок
<fcntl.h> Містять прототипи системних викликів fcntl, open, creat, а також визначення констант і структур даних, необхідних при роботі з файлами
<float.h> Містить визначення констант, необхідних для операцій із плаваючою крапкою
<ftw.h> Містять прототипи функцій, що використовується для сканування дерева файлової системи, а також визначення використовуваних констант

 

 

Продовження таблиці 1

Файл заголовка Призначення
<grp.h> Містять прототипи функцій і визначення структур даних, що використовуються для роботи з групами користувачів
<langinfo.h> Містить визначення мовних констант дня тижня, назва місяця, а також прототип функції langinfo()
<limits.h> Містить визначення констант, що визначають значення обмежень для даної реалізації
<locale.h> Містить визначення констант, що використовується для створення користувальницького середовища, що залежить від мовних і культурних традицій
<math.h> Містить визначення математичних констант
<nl_types.h> Містить визначення для каталогів повідомлень, а також прототипи функцій catopen і catclose
<pwd.h> Містить визначення структури файлу паролів, а також прототипи функцій для роботи з ним
<regex.h> Містить визначення констант і структур даних, що використовується у регулярних вираженнях, а також прототипи функцій для роботи з ними
<search.h> Містить визначення констант і структур даних, а також прототипи функцій, необхідних для пошуку
<setjmp.h> Містять прототипи функцій переходу, а також визначення пов'язаних з ними структур даних
<signal.h> Містить визначення констант і прототипи функцій, необхідних для роботи із сигналами
<stdarg.h> Містить визначення, необхідні для підтримки списків аргументів змінної довжини
<stddef.h> Містить стандартні визначення
<stdio.h> Містить визначення стандартної бібліотеки уведення-висновку
<stdlib.h> Містить визначення стандартної бібліотеки
<string.h> Містять прототипи функцій роботи з рядками
<tar.h> Містить визначення, що використовуються для файлових архівів
<termios.h> Містить визначення констант. Структур даних і прототипи функцій для термінального уведення-висновку

 

 

Продовження таблиці 1

Файл заголовка Призначення
<time.h> Містить визначення типів, констант і прототипи функцій для роботи із часом і датою, а також визначення, що ставляться до дат
<ulimit.h> Містить визначення констант і прототип системного виклику ulimit() для керування обмеженнями, що накладаються на процес
<unistd.h> Містить визначення системних символьних констант, а також прототипи більшості системних викликів
<utime.h> Містить визначення констант і прототип системного виклику utime для роботи з тимчасовими характеристиками файлу
<sys/ipc.h> Містить визначення, що ставляться до системи міжпроцесної взаємодії (IPC)
<sys/msg.h> Містить визначення, що ставляться до системи IPC (повідомлення)
<sys/resource.h> Містить визначення констант і прототипи системних викликів для керування розмірами ресурсів, доступних процесу
<sys/sem.h> Містить визначення, що ставляться до системи IPC (семафори)
<sys/shm.h> Містить визначення, що встановлюються до системи IPC(поділювана пам'ять)
<sys/stat.h> Містить визначення структур даних і прототипи системних викликів, необхідних для одержання інформації про файли
<sys/times.h> Містить визначення структур даних і прототип системного виклику times(), службовця для одержання статистики виконання процесу
<sys/types.h> Містить визначення примітивів системних даних
<sys/utsname.h> Містить визначення прототип системного виклику uname(), що використовується для одержання імен системи
<sys/wait.h> Містить визначення констант і прототипи системних викликів, що використовуються для синхронізації родинних процесів

 

При розробці програм, а тим більше - складних, використовується принцип модульности, розбивки складної програми на складові частини, кожна з яких може зберігатися в окремому файлі й підготовлятися окремо.

В операційній системі Linux для компіляції програм написаних мовою C\C ++ використовується компілятор GNU C\C++.

Найбільш популярними компіляторами для мови Си в середовищі ОС UNIX зараз є pcc (Ритчи й Томпсон) і gcc - GNU Compiler Collection - (Ричард Столлман).

Переваги gcc:

− вільно поширюється.

− gcc підтримується й супроводжується.

− відкритість вихідних текстів дозволяють додавати до gcc нового кодогенераторы.

 

Більшість сучасних систем Unix поставляються із уже встановленими компіляторами.

 

Опції gcc:

Докладно про gcc можна довідатися, виконавши команду

info gcc

 

Найбільше часто вживаються наступні:

Таблиця 2

Оція Призначення
-c Тільки компіляція. З вихідних файлів програми створюються об'єктні файли у вигляді name.o. Компонування не виробляється.
-o file-name Використовувати file-name як ім'я для створюваного gcc файлу (звичайно це файл, що виконується,).
-llibrary-name Використовувати при компонуванні зазначену бібліотеку.
-v Довідатися версію пакета gcc, що зараз використовується
-g Генерує код для налагодження із символьним отладчиком sdb(1). Зауваження: при використанні опції -g таблиця символів не віддаляється.
-O Викликає оптимізатор об'єктного коду, що зменшує розмір і збільшує швидкість програми за допомогою переміщення, об'єднання й видалення коду.

Продовження таблиці 2

Оція Призначення
-S Не викликає асемблер. Залишає результат у файлі з расширением.s. Цей файл буде містити команди мови асемблера, "рідного" для цільового комп'ютера.

 

Компіляція одного модуля:

У найпростішому випадку відкомпілювати програму можна, запускаючи компілятор командою

gcc ім'я_вихідного_файлу

 

Якщо програма була написана без помилок, то компілятор створить виконується файл, що, з ім'ям a.out. Змінити ім'я створюваного файлу, що виконується, можна, задавши його за допомогою опції -o:

gcc ім'я_вихідного_файлу -o ім'я_ щовиконується_файлу

 

Наприклад,

Gcc file.c -o file.exe або gcc -o file file.c

 

Запустити на виконання з поточного каталогу можна так:

./file

 

Щоб відкомпілювати вихідний код, що перебуває у файлі F.cc, і створити об'єктний файл F.o, виконаєте команду:

gcc -c <compile-options> F.c

 

Тут рядок compile-options указує можливі додаткові опції компіляції.

 





Поделиться с друзьями:


Дата добавления: 2015-09-20; Мы поможем в написании ваших работ!; просмотров: 496 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

2587 - | 2229 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.