Як я часто пишу,
що С++ не С, бо там не має ООП ( Об
'єктно-орієнтованого програмування
), так синтаксис процедурного програмування
в С++ є, схоже на С, але, є свої розбіжності,
я вирішив описати коротко основні
компілятори мови програмування С. Чому,
тому що часто качають Microsoft
Visual C++, C++ не дає можливості скомпілювати
між собою код, сам знаю, коли компілював
програму в Borland C++, а код
написаний в книжці для Microsoft
Visual C++ 6.0. Думаю всі знають цей
компілятор. Мова С дає можливість
кросскомпіляції, але на мій вік
програмування, це лише між своїми
стандартними бібліотеками, а так все
залежить від ОС, так що кросскомпіляція,
розуміння розтягнуте. Ми
не будемо розглядати такі компілятори
як Borland C, які застаріли.
Ми будемо розглядати ті які розвиваються,
також які підійдуть до навчання. Я можу
не написати за всі компілятори, але напишу вільні ( де не потрібно шукати
ключі чи кряки ) ви поставили і програмуєте
без обмежень.
До речі всім
початківцям я раджу почати не з С++, а
саме з С, тому що він простіший, самі все
зрозумієте. Почнемо по списку, ми
розглянемо:
- Clang
- GNU
Compiler Collection
- MinGW
- Pelles C
- Clang
Сайт |
---|
Компілятор
на базі LLVM, крім
С, включає в себе також C++ (
clang++ ), Objective-C и en:Objective-C++.
Створений
що б замінити GCC компілятор.
Використовується в ОС FreeBSD
як основний,
хоча можна і використовувати GCC.
Історію ви можете на сайті
Вікіпедії, а наша задача скомпілювати
код хоч hello world. Будемо
використовувати такий код:
#include <stdio.h>
int main( void )
{
printf("hello world\n");
return 0;
}
> clang
hello.c -o hello.exe
ми
також можемо скомпілювати код в проміжний
код (
байт
код ) LLVM:
>
clang
hello.c -emit-llvm -c -o hello.bc
і
запустити проміжний код в LLVM
JIT
утилітою
lli
>
lli hello.bc
hello
world
- GNU Compiler
Collection ( GCC
)
Сайт
|
---|
https://uk.wikipedia.org/wiki/GNU_Compiler_Collection
На ранніх порах
це був чистий С компілятор, раніше він
так і перекладався Gnu C
Compilator, але йшли часи і проект переріс
в GNU Compiler Collection, там є і
С++, Ada, Fortran, C. Провів перелік
яких знаю, там є і реалізація GNU
Java, але з появою OpenJAVA, той
компілятор швидше викинуть , за не потреби і ніби хочуть добавити Go,
або це вже остаточно зробили.
Підтримується багатьма ОС, та
архітектурами, такими як: Alpha,
ARM, AVR, x86, SPARC, PowerPC, SuperH та інші.
Але то інша історія. Наша задача
показати і скомпілювати код.
Так як ми будемо
використовувати лише компілятор С, тому
пишемо сс, саме так викликається
компілятор С в GCC:
> cc hello.c -o
hello.exe
> hello.exe
hello
world
Я використовую
Cygwin для
роботи з компілятором.
варто про
- MinGW
Сайт
|
---|
Це компілятор
GCC для ОС Windows.
Крім GCC там зроблено
все для розробки програм в ОС Windows,
там добавлені файли заголовків та
статичні бібліотеки, для того що б
використовувати Windows API.
Код компілюється
так само як і в GCC.
- Pelles
C
Сайт |
---|
www.christian-heffner.de/
IDE
для мови програмування
С, працює в Windows
і
Pocket PC. Створений
на основі LCC.
Робимо як далі, завантажили, встановили, запускаємо: File
→ New → Project → Win32 Console program (EXE) як на
скріншотові. Та даємо назву проекту в
розділі Name.
Далі File
→ New → Source code. Зберігаємо як hello.c
File → Save as...
Копіюємо код
вище, зберігаємо ( CTRL+S ), потім
збираємо проект CTRL+B, або
вкладка Project → Build test.exe (
test.exe так ми назвали проект, у вас
буде так як ви назвали ім'я
проекту, назва довільна ), Запускаємо
проект Project → Execute test.exe або
комбінацією клавіш Ctrl+F5 і
повинно вийти на щось схоже
Якщо немає
помилок.
Коротко все, я
не описував установку компіляторів, бо
наприклад інсталятор Mingw
періодично на зовнішній вигляд
міняється, після установки назву папки
потрібно занести в список перемінного
середовища, де встановлений проект,
якщо ви використовуєте Cygwin
то це все автоматично, буде.Для того
що б не вводити купу команд кожного
разу, варто використовувати make
файл, який потрібно написати,
про нього ми поговоримо в наступному
записі.
Сторінка в G+
Без майкрософтівського компілятора список неповний. На нього свого часу багато скаржились, що він не так добре дотримується стандарту як інші, але це, мабуть, важливо для дуже в'їдливих людей чи для фахівців казкового рівня, я це лише один раз помітив з шаблонами. Та й з того часу багато вони доклали зусиль, щоб усунути розбіжності.
ВідповістиВидалити