Пользователям Linux систем для начала программирования своих первых программ достаточно иметь любой приглянувшийся текстовый редактор и компилятор GCC. Я использую SublimeText, его функционала мне хватает, а главное синтаксис языка он подсвечивает, для начала этого более чем достаточно.
Проверим, есть ли в нашем дистрибутиве GCC. открываем терминал и вводим:
1 |
loktevra@ubuntuHomePC2:~$ gcc -v |
вывод даст нам много разной информации, а в последней строчке версию компилятора:
1 2 3 4 5 6 7 |
Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.9.2-10ubuntu13' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.9.2 (Ubuntu 4.9.2-10ubuntu13) |
если же выдало ошибку, что команда не найдена, то необходимо сперва установить его:
1 |
sudo apt-get install gcc |
По завершению установки можно приступать к написанию своего HelloWorld`а.
в любой удобной директории создаём текстовый файл: HelloWorld.cpp. Расширение .cpp указывает на то, что это текстовый файл исходного кода на C++.
открываем файл в текстовом редакторе и вводим код:
1 2 3 4 5 6 7 8 |
#include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; } |
#include — директива для подключения других файлов в код. строка с этим кодом будет заменена на содержимое файла iostream.h. Этот файл стандартный и его не нужно помещать в ту же директорию, где находится наш исходный код. Если мы хотим добавить нестандартный файл/библиотеку, то их придется поместить рядом с нашим файлом, а после директивы внутри символов: «< >» прописать путь до нужного файла и/или библиотеки.
Содержимое третьей строки — using namespace std;
указывает на то, что мы используем по умолчанию пространство имен с названием «std». Это необходимо для того, чтобы можно было использовать уже имеющиеся переменные из этого пространства имен.
Все то, что находится внутри фигурных скобок функции int main() {}
будет автоматически выполняться сразу после запуска программы. Это стандартное имя функции именно её будет пытаться запустить наша программа сразу после запуска, если её переименовать, то на момент компиляции выдаст ошибку.
Эта функция должна вернуть число. для этого перед функцией указывается int — объявление типа переменной, возвращаемой функцией.
Команда return 0
необходима для того, чтобы передать операционной системе сообщение об удачном завершении программы, передачу других значений используют для определения, что за ошибка произошла при попытке выполнить код. В принципе нашей программе не обязательно что либо возвращать и можно сократить код до:
1 2 3 4 5 6 7 |
#include <iostream> using namespace std; main() { cout << "Hello, world!" << endl; } |
компилятор сам подставит нужный код, так как функция main обязана вернуть код выполнения. Мой компилятор не выдал ни одного сообщения на этот код.
Собственно запуск программы возможен только после компиляции текста в двоичный код.
Для компиляции в терминале войдите в папку, где хранится исходник, и введите:
1 2 |
c++ имя_файла.cpp -o имя_выходного_бинарника <span class="hljs-comment"># компиляция кода </span>./имя_выходного_бинарника <span class="hljs-comment"># запуск программы</span> |
в моем случае это было:
1 |
c++ helloworld.cpp -o helloworld |
Затем просто запускаем, опять же в терминале:
1 |
./helloworld |
Если программа собралась с первого раза, то хорошо. Если компилятор говорит о наличии ошибок, значит вы что-то сделали неправильно.
Прочитайте текст ошибки и попробуйте ее исправить своими силами. Если не получится, напишите о вашей проблеме в комментариях.
Текст сообщения можно менять по своему усмотрению. Например вместо «Hello, world!» можно вывести «Hello, Jo!».