Table of Contents
This article gives step-by-step information from software installation to the completion of a Hello World program.
Install TDM-GCC (the compiler)
Make sure that GCC is accessible in PATH
You should get something like this in your CMD
C:\>gcc gcc: fatal error: no input files compilation terminated.
Otherwise, you should add appropriate PATH manually.
Install Geany (the IDE)
If you are not sure, download and install the version comes with GTK runtime.
Hello World for C
#include <stdio.h> int main( void ) { printf("Hello, World!\n"); return 0; }
Hello World for C++
#include <iostream> int main( ) { std::cout << "Hello, World!\n" << std::endl; return 0; }
Finish Your Hello World Program
-
Click “New” in toolbar.
-
Type above Hello World program according to your language (C or C++).
-
Save the program with proper extension (Use .c for C programs, .cpp or .cxx for C++ programs)
-
Click “Build” in toolbar. It should say “Compilation finished successfully.”, otherwise check your code.
-
Click “Execute” in toolbar. It should popup a console window and you should see “Hello, World!” displayed.
Современные IDE очень тяжелые и совсем неудобны для разработки простых консольных приложений, скриптов, верстки и т.д.
Сегодня я покажу вам кросcплатформенную IDE Geany. Впервые я с ней познакомился, когда писал скрипт на PHP (Базу данных пользователей). Как PHP и HTML,CSS редактор она показала себя превосходно. В дальнейшем я использовал ее для написания скриптов на python, в некоторых случаях Geany была более удобна, чем Spyder. А также писал небольшие программки на С++ под Linux.
Чтобы писать код на Си и С++ в Windows в этой замечательной программе, нужно всего лишь выполнить действия по установке компилятора, которые указаны в этой статье и установить саму Geany. Её можно скачать на официальном сайте ТУТ, а также сразу скачайте плагины ТУТ. Плюс, советую установить Python, его качаем тут.
Итак, если вы все установили, тогда давайте проверим как же это работает. PHP и HTML вы и сами сможете проверить. А я вам покажу Си, C++ и Python скриптики, которые может обрабатывать geany.
Для этого создадим на диске С папку Projects, куда мы будем сохранять наши программки.
Первая программа на Си. Создаем в папке Projects файл proga.c и копируем туда такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <stdio.h> int summ(a,b){ int first = a; int second = b; int summ = first + second; printf(«\na+b = %d»,summ); printf(«\n»); return 0; } int main(){ printf(«Hello\n»); int a,b; printf(» vvedite chislo a:»); scanf(«%d»,a); printf(«\n vvedite chislo b:»); scanf(«%d»,b); summ(a,b); return 0; } </stdio.h> |
Теперь нам нужно выполнить наш код, но прежде его нужно скомпилировать. Для этого жмем кнопку СБОРКА в верхней панели, а уже потом кнопку ВЫПОЛНИТЬ. После чего у вас запустится консольное приложение.
Теперь проверим программу на С++. Создаем все в той же папке файл prog.cpp, открываем в Geany.
Для того, чтобы в консоли адекватно отображались кириллические символы, нужно настроить кодировку. Выбираем в верхнем меню Документы — Настройка кодировки — Восточно Европейская — Кириллица/Русская (СР866).
И копируем код:
#include <iostream> using namespace std; int main() { string name,otvet; cout << «Привет, как тебя зовут?» << endl; cin >> name; cout << «Ну что, « << name << » ты готов к путишествиям? д|н « << endl; cin >> otvet; if(otvet == «д»){ cout << «Так чего же ты сидишь на месте?» << endl; } else { cout << «Хватит пускать корни!» << endl; } return 0; }</iostream> |
Жмем Сборка — Выполнить. Вуаля, все работает!
Ну и, напоследок, Python. Тут сначала нужно провести некоторые настройки. Сначала питон 3 устанавливаем на ваш компьютер, затем переходим в диск С и копируем путь к папке с питоном, у меня это C:\Python34, у вас может быть версия питона поновее, поэтому название папки будет отличаться. Теперь этот путь нам нужно занести в глобальные переменные.
Клацаем правой кнопкой мыши на мой компьютер — свойства — слева видим Дополнительные параметры системы (если у вас WIN 7) — в появившемся окне внизу ищем кнопку Переменные среды и жмем ее — выделяем PATH — жмем изменить и в конец, псле ; (если нет то поставьте 😉 лепим наш путь C:\Python34. Все в конце ничего не ставим, жмем на все Ок.
Теперь переходим в Geany и создаем все в той же папке Projects файл prog.py и копируем туда код:
# coding: utf8 print («Привет! «) name = input(«как тебя зовут?\n») otvet = input(«Хорошо, «+ name+«, хочешь поиграть в танки? д / н\n») if(otvet == «д»): print(«Гребанный задрот») elif(otvet == «н»): print(«Правильно, «+name+«. Лучше поучи программирование!») else: print(«Ты что, по кнопкам попасть не можешь?») |
После чего просто жмем Выполнить. И наслаждаемся выполнением программы)).
На этом все. Все вопросы в комментариях).
Одним из самых мощных современных кроссплатформенных компиляторов языка C++ является свободно-распространяемый компилятор g++. Для его установки в debian-подобных ОС семейства Linux (Debian, Ubuntu, Mint и их клоны) достаточно выполнить команду терминала apt-get install g++ с правами суперпользователя (администратора) или воспользоваться менеджером пакетов synaptic.
Установка компилятора g++ в ОС семейства Windows несколько сложнее, поэтому рассмотрим этот процесс более подробно.
- На сайте mingw.org переходим в раздел Download (Загрузки), в появившемся окне щёлкаем по ссылке Download mingw-get-setup.exe (рис. A.1). Загружаем установочный файл и запускаем его.
- На первом этапе установки необходимо выбрать команду Install (см. рис. A.2), затем папку для установки (рис. A.3).
- После этого начнётся процесс доустановки инсталлятора (рис. A.4).
- Далее выбираем компиляторы для установки (C++, Fortran, Ada) (рис. A.5) и ждём пока будут скачаны и установлены необходимые компиляторы. После завершения процесса установки компиляторы (в нашем случае компилятор C++) готовы к использованию. Но для вызова их (из командной строки Windows, из текстового редактора Geany) необходимо указывать полное имя файла с компилятором. При установке компилятора C++ в стандартный каталог C:\MinGW — полное имя компилятора C++ будет таким: C:\MinGW\bin\g++. Для того, чтобы каждый раз не писать полное имя компилятора, можно добавить путь C:\MinGW\bin в список путей системной переменной Path.
- Для изменения значения системной переменной Path необходимо в панели управления выбрать Система -> Дополнительные параметры системы -> Дополнительно -> Переменные среды -> Системные переменные -> Path -> Изменить. В открывшемся диалоговом окне добавить путь C:\MinGW\bin\.
После перезагрузки ОС Windows для обращения к компилятору достаточно будет указывать его имя — g++.
Таким образом, в ОС Linux для работы с компилятором в командной строке необходимо запустить Терминал, а в ОС Windows – командную строку. После чего работа с компилятором g++ с ОС Windows и Linux идентична.
Рассмотрим опции компилятора командной строки, необходимые для компиляции и запуска простейших программ.
Для того, чтобы создать исполняемый файл из текста программы на C++, необходимо выполнить команду
Здесь name.cpp — имя файла с текстом программы. В результате будет создан исполняемый файл со стандартным именем a.out. Для того, чтобы создать исполняемый файл с другим именем, необходимо выполнить команду
Здесь name.cpp — имя файла с текстом программы, nameout — имя исполняемого файла.
При использовании компилятора g++ после компиляции программы автоматически происходит компоновка программы (запуск компоновщика make). Чтобы исключить автоматическую компоновку программы, следует использовать опцию -c. В этом случае команда будет иметь вид g++ -c name.cpp
Рис.
A.2.
Первое окно установки mingw.
Рис.
A.3.
Выбор папки для установка компилятора.
Технология работы с компилятором g++ может быть такой: набираем текст программы в стандартном текстовом редакторе, потом в консоли запускаем компилятор, после исправления синтаксических ошибок запускаем исполняемый файл. После каждого изменения текста программы надо сохранить изменения в файле на диске, запустить компилятор, и только после этого запускать программу (исполняемый файл). Очень важно не забывать сохранять текст программы, иначе при запуске компилятора будет компилироваться старая версия текста программы.
Рис.
A.4.
Загрузка инсталлятора.
Компилятор g++ эффективен при разработке больших комплексов программ, он позволяет собирать приложения из нескольких файлов, создавать библиотеки программ. Рассмотрим процесс создания и использования библиотеки решения задач линейной алгебры (см. п. 6.4, задачи 6.10 — 6.12):
int SLAU(double **matrica_a, int n, double *massiv_b, double *x) — функция решения системы линейных алгебраических уравнений;
int INVERSE(double **a, int n, double **y) — функция вычисления обратной матрицы;
double determinant(double **matrica_a, int n) — функция вычисления определителя.
Для создания библиотеки создадим заголовочный файл slau.h и файл slau.cpp, в который поместим тексты всех трёх функций решения задач линейной алгебры.
Текст файла slau1.h:
int SLAU( double ** matrica_a, int n, double *massiv_b, double *x ); int INVERSE( double **a, int n, double **y ); double determinant ( double ** matrica_a, int n );
Текст файла slau1.cpp:
#include <math.h> int SLAU( double ** matrica_a, int n, double *massiv_b, double *x ) { int i, j, k, r; double c,M, max, s; double **a, *b; a=new double * [ n ]; for ( i =0; i<n; i++) a [ i ]=new double [ n ]; b=new double [ n ]; for ( i =0; i<n; i++) for ( j =0; j<n; j++) a [ i ] [ j ]=matrica_a [ i ] [ j ]; for ( i =0; i<n; i++) b [ i ]=massiv_b [ i ]; for ( k=0;k<n; k++) { max=fabs ( a [ k ] [ k ] ); r=k; for ( i=k+1; i<n; i++) if ( fabs ( a [ i ] [ k ] )>max) { max=fabs ( a [ i ] [ k ] ); r= i; } for ( j =0; j<n; j++) { c=a [ k ] [ j ]; a [ k ] [ j ]=a [ r ] [ j ]; a [ r ] [ j ]= c; } c=b [ k ]; b [ k ]=b [ r ]; b [ r ]= c; for ( i=k+1; i<n; i++) { for (M=a [ i ] [ k ] / a [ k ] [ k ], j=k; j<n; j++) a [ i ] [ j ]-=M*a [ k ] [ j ]; b [ i ]-=M*b [ k ]; } } if ( a [ n -1 ] [ n-1]==0) if ( b [ n-1]==0) return -1; else return -2; else { for ( i=n-1; i >=0; i --) { for ( s =0, j= i +1; j<n; j++) s+=a [ i ] [ j ] * x [ j ]; x [ i ]=( b [ i ]- s ) / a [ i ] [ i ]; } return 0; } } int INVERSE( double **a, int n, double **y ) { int i, j, res; double *b, *x; b=new double [ n ]; x=new double [ n ]; for ( i =0; i<n; i++) { for ( j =0; j<n; j++) if ( j==i ) b [ j ]= 1; else b [ j ]= 0; res=SLAU( a, n, b, x ); if ( res !=0) break; else for ( j =0; j<n; j++) y [ j ] [ i ]=x [ j ]; } if ( res !=0) return -1; else return 0; } double determinant ( double ** matrica_a, int n ) { int i, j, k, r; double c,M, max, s, det =1; double **a; a=new double * [ n ]; for ( i =0; i<n; i++) a [ i ]=new double [ n ]; for ( i =0; i<n; i++) for ( j =0; j<n; j++) a [ i ] [ j ]=matrica_a [ i ] [ j ]; for ( k=0;k<n; k++) { max=fabs ( a [ k ] [ k ] ); r=k; for ( i=k+1; i<n; i++) if ( fabs ( a [ i ] [ k ] )>max) { max=fabs ( a [ i ] [ k ] ); r= i; } if ( r !=k ) det=_det; for ( j =0; j<n; j++) { c=a [ k ] [ j ]; a [ k ] [ j ]=a [ r ] [ j ]; a [ r ] [ j ]= c; } for ( i=k+1; i<n; i++) for (M=a [ i ] [ k ] / a [ k ] [ k ], j=k; j<n; j++) a [ i ] [ j ]_=M_a [ k ] [ j ]; } for ( i =0; i<n; i++) det*=a [ i ] [ i ]; return det; for ( i =0; i<n; i++) delete [ ] a [ i ]; delete [ ] a; }
В качестве тестовой задачи напишем главную функцию, которая предназначена для решения системы линейных алгебраических уравнений.
#include <iostream> #include <math.h> //Подключение личной библиотеки slau #include " slau1 .h " using namespace std; int main ( ) { int result, i, j,N; double **a, *b, *x; //Ввод размерности системы. cout<<" N = "; cin>>N; //Выделение памяти для матрицы правых частей и вектора свободных членов. a=new double * [N ]; for ( i =0; i<N; i++) a [ i ]=new double [N ]; b=new double [N ]; x=new double [N ]; //Ввод матрицы правых частей и вектора свободных членов . cout<<" Input Matrix A "<<endl; for ( i =0; i<N; i++) for ( j =0; j<N; j++) cin>>a [ i ] [ j ]; cout<<" Input massiv B "<<endl; for ( i =0; i<N; i++) cin>>b [ i ]; //Вызов функции решения СЛАУ методом Гаусса из библиотеки slau.h result=SLAU( a,N, b, x ); if ( result ==0) { //Вывод массива решения. cout<<" MassivX "<<endl; for ( i =0; i<N; i++) cout<<x [ i ]<<" \t "; cout<<endl; } else if ( result ==-1) cout<<"Бесконечное множество решений\n "; else if ( result ==-2) cout<<"Нет решений\n "; }
Теперь необходимо из этих текстов создать работающее приложение. Рассмотрим это поэтапно.
- Компиляция библиотеки slau1.h с помощью команды g++ -c slau1.cpp.
- Компиляция главной функции main.cpp с помощью команды g++ -c main.cpp.
- Создание исполняемого файла с именем primer из двух откомпилированных файлов main.o и slau1.o с помощью команды g++ main.o slau1.o -o primer.
- Запуск исполняемого файла.
После разработки библиотеки линейной алгебры (пример) slau1, можно использовать её в различных программах при вычислении определителя, обратной матрицы и решения систем линейных алгебраических уравнений.
При разработке программ с большим количеством вычислений, компилятор g++ позволяет оптимизировать программы по быстродействию. Для получения оптимизированных программ можно использовать ключи -O0, -O1, -O2, -O3, -Os:
- при использовании ключа -O0 оптимизация отключена, достигается максимальная скорость компиляции, опция задействована по умолчанию;
- при использовании ключа «мягкой» оптимизации -O1 происходит некоторое увеличение времени компиляции, этот ключ оптимизации позволяет одновременно уменьшать занимаемую программой память и уменьшить время выполнения программы;
- при использовании ключа -02 происходит существенное уменьшение времени работы программы, при этом не происходит увеличение памяти, занимаемой программой, не происходит развёртка циклов и автоматическое встраивание функций;
- ключ «агрессивной» оптимизации -O3 нацелен в первую очередь на уменьшение времени выполнения программы, при этом может произойти увеличение объёма кода и времени компиляции, в этом случае происходит развёртка циклов и автоматическое встраивание функций;
- ключ -Os ориентирован на оптимизацию размера программы, включаются те опции из набора -O2, которые обычно не увеличивают объём кода, применяются некоторые другие оптимизации, направленные на снижение его объёма.
Для разработки программ на различных языках программирования можно использовать текстовый редактор Geany. Редактор Geany входит в репозитории большинства дистрибутивов Linux, его установка осуществляется стандартным для вашего дистрибутива образом (в debian-подобных ОС с помощью команды apt-get install geany). Для установки его в Windows необходимо скачать со страницы http://www.geany.org/Download/Releases инсталляционный файл и установить программу стандартным способом.
Разработка программ с использованием Geany более эффективна. Окно Geany представлено на рис. A.6.
Последовательно рассмотрим основные этапы разработки программы с использованием Geany.
- Необходимо создать шаблон приложения на C/C++ (или другом языке программирования) с помощью команды Файл -> Создать из шаблона -> main.cxx. После чего необходимо ввести текст программы и сохранить его.
- Для компиляции и запуска программы на выполнение служит пункт меню Сборка. Для компиляции программы следует использовать команду Сборка -> Скомпилировать (F8). В этом случае будет построен объектный код программы (файл с расширением .o или .obj). Для создания исполняемого кода программы служит команда Сборка -> Собрать (Shift+F9). Для запуска программы следует выполнить команду Сборка -> Выполнить (F5).
Параметры компилятора определяются автоматически после выбора шаблона (Файл -> Создать из шаблона). Однако команды компиляции и сборки по умолчанию можно изменить, используя команду Сборка -> Установить параметры сборки (см. рис. A.7). Здесь %f — имя компилируемого файла, %e — имя файла без расширения.
Есть замечательный проект MSYS2, который предоставляет для Windows пакетный менеджер Pacman,
портированный из Arch Linux. С помощью данного пакетного менеджера
можно легко устанавливать необходимые компиляторы для программирования,
библиотеки для разработчиков, например, GTK+ или Qt5, и различные
инструменты разработки.
В данной статье рассмотрим, как установить набор компиляторов GCC для C/C++, и напишем простые программы на этих языках.
Установщик MSYS2 скачивается с сайта http://www.msys2.org/. MSYS2 не может быть установлен на диск с разметкой FAT*
и на Windows XP или более старую Windows. Такие компьютеры уже редкость, и ограничения не создают проблем.
Установка и настройка Msys2
Скачиваем и запускаем установщик: для 64-битной системы x86_64
, для 32-битной — i686
.
Нажимаем на «Далее»:
Рис. 1. Начало установки MSYS2 |
Указываем директорию установки. Путь должен быть коротким, содержать
только латиницу с цифрами (ASCII). В пути не должно быть знаков
ударений, пробелов и символических ссылок. Лучше оставить путь по
умолчанию:
Рис. 2. Выбор каталога установки MSYS2 |
Указываем называние папки в меню «Пуск»:
Рис. 3. Выбор папки в меню «Пуск» |
Ждем завершения процесса установки:
Рис. 4. Процесс установки MSYS2 |
Оставляем отмеченной галочку «Запустить Msys2 сейчас» и нажимаем завершить:
Рис. 5. Завершение установки MSYS2 |
В начале необходимо обновить основные системные пакеты MSYS2 и базу данных с информацией об доступных пакетах. Для этого вводим команду:
pacman -Syu
И соглашаемся на обновление, вводом y
:
Рис. 6. Обновление баз данных пакетов MSYS2 |
Для завершения установки возможно потребуется вручную закрыть окно с
терминалом MSYS2. И заново его запустить через ярлык в меню «Пуск»:
Рис. 7. Требуется перезапуск терминала MSYS2 |
После перезапуска терминала Msys2, выполняем команду для обновления остальных пакетов:
pacman -Su
Рис. 8. Обновление остальных пакетов MSYS2 |
После всех обновлений, пакетный менеджер Pacman готов к применению.
Установка набора компиляторов GCC для C/C++ и легковесной IDE Geany
У пакетного менеджера pacman имеется группа mingw-w64-x86_64-toolchain
, в которой собраны компиляторы GCC, стандартные библиотеки и инструменты разработки:
Рис. 9. Установка пакетов из группы mingw-w64-x86_64-toolchain |
В моем случае в группе mingw-w64-x86_64-toolchain
имеется 17 пакетов. При необходимости вы можете установить все пакеты. Для программирования на C/C++ достаточно пакета mingw-w64-x86_64-gcc
, с которым по зависимостям установятся еще несколько необходимых пакетов:
pacman -S mingw-w64-x86_64-gcc
В качестве редактора кода воспользуемся программой Geany, в которой
легко писать простые программы на C/C++, компилировать и запускать.
pacman -S mingw-w64-x86_64-geany
Hello World на C/C++
Запускаем geany в виде фоновой задачи в терминале Msys2:
geany &
Пока работает geany, можно продолжать пользоваться терминалом Msys2, но
нельзя его закрывать, так как geany закроется вместе с ним. В одной из
следующих статей я расскажу про другой вариант запуска программ,
установленных в Msys2.
Рис. 10. IDE Geany |
В Genay создаем новый файл. Можно создать файл с помощью шаблона: Файл -> Создать из шаблона.
Начнем с языка Си и напишем программу, выводящее сообщение Hello, World!:
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello, World!\n");
return 0;
}
И сохраним в файл, например, hello.c
.
Скомпилировать программу можно:
- нажав на кнопку «Собрать текущий файл» на панели инструментов;
- через главное меню: Сборка -> Build ;
- или с помощью горячей клавиши F9.
Запускается программа, аналогично сборке, также просто:
- нажатием кнопки «выполнить» на панели инструментов;
- через главное меню: Сборка -> Execute ;
- Или с помощью горячей клавиши F5.
Рис. 11. Запуск программы Hello World |
Для языка C++ программа Hello, World! будет:
#include <iostream>
int main(int argc, char **argv)
{
std::cout << "Hello, World!\n";
return 0;
}
Сохранив файл, например, как hello.cpp
, абсолютно также производим сборку и запускаем.
Заключение
Для простоты программирования на C/C++ в Windows можно использовать Msys2. Так в составе Msys2 идет пакетный менеджер pacman, с помощью которого устанавливаются необходимые компиляторы и инструменты разработки. И установив нужные пакеты за пару десятков минут, можно спокойно программировать далее.
Настройка Geany для изучения языков программирования под Windows
Настройка завершена. Ссылки: Информация по Бейсику Эмулятор терминала |
Категория: Уголок сисадмина | Добавил: МихаилМ (29.11.2015) |
Просмотров: 3541 | Комментарии: 4
| Рейтинг: 0.0/0 |