Создаём компьютерную игру
eng   рус

Компиляция C++ кода с помощью g++

Следующий урок: Первая программа на C++ - Hello World

Для этого урока у вас должна быть установлена программа g++. g++ - производное имя от gcc. gcc - компилятор языка C. Имя gcc образовано от GNU C Compiler. GNU - операционная система, а также это набор свободного ПО, включая gcc и g++ (компиляторы C/C++).

Если вы используете Linux, то g++ уже установлен.

g++ для Windows

Есть пара вариантов, как установить g++ на Windows. Cygwin и MinGW32. MinGW имеет версию для архитектуры x86-64. И именно её мы и будем использовать. Скачайте MinGW-W64, установите, а затем найдите mingw в меню Пуск (MinGW-W64 -> Run Terminal), или зайдите в папку с программой в проводнике (нужно запускать файл mingw-w64.bat). Вы увидите командную строку Windows.

Работа с командной строкой Windows

Если вы никогда не использовали командную строку, то вот несколько полезных команд:

d: c: cd folder1 cd ..

Имя диска с двоеточием - перейти на определённый диск. Например, я храню код на диске D, поэтому моей первой командой будет:

d:

cd - изменить директорию (change directory). Эта команда переместит вас в нужную директорию. Я храню код для данных уроков в папке: d:\prog\cpp. Поэтому, после того как я выбрал диск D, я обычно ввожу следующую команду:

cd prog\cpp

cd .. (две точки) переместит вас в папку выше.

Исходный код

Создайте файл hello_world.cpp в папке, где вы планируете хранить свой код. Откройте его в простом текстовом редакторе: Notepad/Gedit/Notepad++/Sublime... И вставьте следующий текст:

#include <iostream> int main() { cout << "Hello World\n"; return 0; }

Эта программа напечатает строку Hello World в консоли. Мы обсудим, что означает данный код, в следующем уроке.

Весь код хранится в простых текстовых файлах - это исходный код. Чтобы его выполнить, нужно сначала его скомпилировать. Откройте папку где вы сохранили исходный код в командной строке.

Компиляция C++ кода с помощью компилятора g++

g++ <filename>
g++ hello_world.cpp

После выполнения данной команды, в текущей директории будут создан файл: a.out или a.exe. Чтобы запустить программу, введите имя файла в консоли и нажмите Ввод (Enter). В консоли вы увидите текст Hello World. После этого программа сразу завершится.

a.out - имя по умолчанию для скомпилированных файлов. Мы можем изменить его:

g++ -o <output_filename> <filename> g++ -o hello_world.exe hello_world.cpp

Выполнив последнюю команду, мы получим файл hello_world.exe. После этого в Windows скомпилированную программу можно выполнить следующей командой:

hellow_world.exe

А в Linux:

./a.out

Компиляция (compilation) и связывание (linking)

Во время компиляции происходит два шага. Первый - компиляция файлов с исходным кодом. Результат этого шага: объектный код. Объектный код помещается в файлы с расширением .o. Следующий шаг - связывание (linking). Специальная программа - компоновщик (linker), берёт объектные файлы и "связывает" их вместе. Компоновщик необходим, когда есть больше одного файла с исходным кодом. Пока наши программы будут состоять из одного файла. Но в будущем нам понадобится компоновщик.

Заключение

Мы рассмотрели как компилируется C++ код с помощью компилятора g++. Теперь мы готовы к изучению C++. А начнём мы с разбора программы Hello World.

Упражнения

  1. Скомпилируйте hello_world.cpp

Комментарии:

16 декабря 2019 г. 10:47
1 Guest
#include <iostream> #include <cstring> #include <string> using namespace std; struct student { char*name; int kurs; float rating; }; student makep() { float rating; int kurs; char Name[20]; cout << "Имя: "; cin >> Name; cout << "Курс: "; cin >> kurs; cout << "Райтинг: "; cin >> rating; cout << endl; student p; p.name = new char[strlen(Name) + 1]; strcpy(p.name, Name); p.kurs = kurs; p.rating = rating; return p; } void printp(student* p, int l) { for (int i = 0; i < l; i++) { cout << p[i].name << endl << "Курс: " << p[i].kurs << endl << "Райтинг: " << p[i].rating << endl << endl; } } void searchp(student* p, int l) { bool t = true; int ls = 0; student* ps = new student[10]; for (int i = 0; i < l; i++) { if (p[i].rating < 3) { ps[ls] = p[i]; ls++; t = false; } } if (t) { cout << "Нет информации" << endl << endl; } else { printp(ps, ls); } delete[] ps; } void makestr(char** strm, int a) { for (int i = 0; i < a; i++) { int count = 0; char str[256]; cout << "Введите строку " << i + 1 << ": "; cin >> str; count = strlen(str); strm[i] = new char[count + 1]; strcpy(strm[i], str); } cout << endl; } void printstr(char** strm, int a, int b) { for (int i = 0; i < a; i++) { cout << strm[i]; cout << endl; } cout << endl; } void delmas(char** strm, int a, int b, int n) { printstr(strm, a - n, b); } int main() { int k, l = 0, lnstr, nstr; student* p = new student[10]; char** strm; do { cout << "1. Добавить студента" << endl; cout << "2. Вывести список студентов" << endl; cout << "3. Найти" << endl; cout << "4. Создать массив строк" << endl; cout << "5. Напечатать массив строк" << endl; cout << "6. Удалить" << endl; cout << "7. Выйти" << endl << endl; cin >> k; cout << endl; switch (k) { case 1: p[l] = makep(); l++; break; case 2: printp(p, l); break; case 3: searchp(p, l); break; case 4: cin >> lnstr; cin >> nstr; strm = new char*[lnstr]; makestr(strm, lnstr); break; case 5: printstr(strm, lnstr, nstr); break; case 6: int n; cin >> n; delmas(strm, lnstr, nstr, n); break; } } while (k != 7); delete[] p; for (int i = 0; i < lnstr; i++) { delete[] strm[i]; } }
8 апреля 2020 г. 13:38
2 Guest
Привет Роман скажи пожалуйста где можно почитать твои старые уроки с 2009 по 2012 год?
10 апреля 2020 г. 15:06
4 roman
Здесь многое: http://gamesmaker.ru/ Разделы C++ и DirectX