Как писать программы на linux

Закрыт. На этот вопрос невозможно дать объективный ответ. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.

Закрыт 7 лет назад .

Подскажите, что лучше? Писать программы для линукс в самом линукс? Но тогда какую выбрать среду? Или писать в винде, но тогда какие есть особенности для линукс? Подскажите, пожалуйста.

Я работаю на С++.

Отслеживать
задан 2 фев 2016 в 3:21
Владимир Самофал Владимир Самофал
97 2 2 серебряных знака 8 8 бронзовых знаков

Linux лучше подходит для программирования на чем угодно, кроме C#, ASP и прочих заточенных под M$ технологий.

2 фев 2016 в 4:58

Насчет C# я бы так не утверждал. Можно замечательно на нем кодить и дебажить в MonoDevelop. И проекты, написанные в MSVS C# прекрасно собираются в Mono. Исключения будут теже, что и для любого другого языка — это использование библиотек, заточенных под конкретную платформу и GUI.

Работа с компилятором GCC C++ в Linux.

2 фев 2016 в 9:43
2 фев 2016 в 10:11
2 фев 2016 в 11:08
2 фев 2016 в 11:28

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

Пишите в самом линуксе. IDE взять QT Creator — кросплатформенный с множеством готовых библиотек и отличной документацией. В нем можно создать cmake проект если не устраивают проектные файлы creator’а

Отслеживать
ответ дан 2 фев 2016 в 3:59
user453575457 user453575457
2,874 2 2 золотых знака 18 18 серебряных знаков 41 41 бронзовый знак

При разработке на Windows у вас могут возникнуть специфичные проблемы, характерные для этой ОС. Поэтому если целевая платформа вашего приложения — Linux, то и работайте в ней. Это позволит избежать излишних проблем при портировании с Windows на Linux (особенно если это достаточно большой проект).

Небольшие примеры возможных проблем:

  • Различные кодировки при выводе данных в консоль и файл (например, при логировании): если в Ubuntu по умолчанию используется Unicode, то на Windows с этим придется повозиться.
  • MinGW обеспечивает минимальную эмуляцию POSIX систем, поэтому, например, при работе с сигналами можно наткнуться на неприятную неожиданность.
  • При использовании QT может понадобится дополнительная темизация отдельных элементов (сталкивался с этим на Windows — пришлось прописывать дополнительные стили для корректного отображения).
  • Подключение и сборка сторонних библиотек, на мой взгляд, намного удобнее в Linux (упрощенно: скачал, make , make install ). На Windows бывает приходится в ручную настраивать процесс сборки, что замедляет процесс разработки. Как пример, сталкивался с этим при подключении libxml2 , libxslt и ffmpeg .
Читайте также:
Укажите ложное высказывание имя программы может

Для сборки проекта лучше использовать такие кросс-платформенные средства как CMake, это позволит избежать привязки к специфичной для ОС утилите сборки. CMake автоматически сгенерирует файлы управления сборкой из файлов CMakeLists.txt .

По поводу среды разработки: тут уже на свое усмотрение. Какая среда нравится и удобна — ту и используйте. Я в своей работе использую CLion (платная IDE, но есть небольшой хак: дистрибутив по early access program бесплатен, учитывая их частый выход, можно использовать IDE практически свободно).

C++ первая программа HELLO WORLD в Linux Ubuntu

Источник: ru.stackoverflow.com

Как писать программы на linux

Начало программирования в Linux

Я решил написать эту статью, поскольку я столкнулся при переходе с Windows на Linux с тем, что способы программирования в Linux значительно отличаются от традиционного Windows. Поначалу это было очень страшно. Тем более, что во всех форумах пишут, что для программирования в Linux можно использовать только vim и gcc, а для отладки — gdb.

Безусловно, с помощью этих программ и создают программы в Linux, но для новичка это не самый лучший способ — тем более, для программистов, пришедших из мира Windows. В Windows все программирование сводится к тому, что необходимо вначале создать форму(окно), вставить в форму несколько управляющих элементов и в сообщениях от них вставить код самой программы, или при многозадачности вставить запуск нового потока.

Все это можно и даже еще проще сделать и под Linux. Единственное, в чем здесь отличия, что в Linux это — не основной способ программирования. Но если вам надо срочно написать программу под Linux и вам не очень хочется изучать способы программирования в Linux и идеологию этой OS, то для этой цели можно использовать KDevelop или же kate и Qt Designer.

О том, как это делается, вы можете прочитать здесь: /usr/share/doc/qt-devel-xxxx или в интернете: хорошая подробная статья о Qt «Создание GUI в Linux» на сайте Softerra.ru. Так же есть книга «KDevelop. Руководство программиста».

Ну хватит о програмировании в графических системах, тем более что разных библиотек под Linux очень много (Qt, Gtk, . ).
Традиционно в Linux пишут программы на различных языках программирования. Если есть возможность написать что то на Perl, зачем применять c/c++. Если же вам надо в программе использовать, скажем, кодер mpg3 или же ogg — зачем самому писать код кодировщика или декодера, если есть lame и mencoder которые прекрасно работают. Тем более, управлять данными программами из своих элементарно, а главное — как просто написать, например, видео редактор.
Система Linux построена на основе идеологии Unix, поэтому для того, чтобы работать с каким либо устройством, вам просто необходимо читать и писать данные в один из файлов в каталоге /dev, например

Читайте также:
Как называется многократно повторяющаяся последовательность команд при выполнении программы

cat /dev/audio > ~/data.au

При этом будет производится запись с микрофона до тех пор, пока вы не нажмете Ctrl+C. Этого же результата можно достигнуть и из своей программы, вот как это выглядит на с++ :

#include #include int main() < FILE *r = fopen(«/dev/audio», «rb»); FILE *w = fopen(«~/data.au», «wb»); while(true) // Условие заканчивающее запись < fputc(fgetc(f), w); >fclose(w); fclose(r); return 0; >

Но возникает вопрос, а как с условием, ведь если там стоит true, то завершить программу можно только нажатием Ctrl+C и при этом не будут закрыты файлы. Как одновременно сделать так, что бы при этом файлы все-таки закрывались?

Для этого необходимо запустить еще один процесс или поток — сейчас в Linux все возможно. Для этого используется системный вызов fork(). Определение его хранится в файле unistd.h. Вот как выглядит разветвление программы:

#include #include int main() < int pid = fork(); if(pid == 0) < printf(«child process «); >else < printf(«parent process «); >return 0; >

Теперь вопрос — как заставить взаимодействовать, ведь программа запускает два разных процесса. Здесь есть множество путей решения: сигналы, семофоры, каналы, .
Подробней о этом всем написано в LPG. Если я здесь это начну описывать, то получится копирование одного и того же, к тому же LPG переведен на русский язык.
Если вы еще не освоились с Linux, то еще один пример — помните, как нам приходилось в Windows для поиска какого то файла на диске (поиск установленной программы, например) писать рекурсивный поиск. В Linux это, конечно, тоже можно, но зачем, ведь можно написать:

ls -R|grep [имя файла]

А как насчет того, чтобы обнаружить присутствие программы в памяти:

ps -x|grep [имя программы]

при этом grep использует регулярные выражения и вы можете искать данные по шаблону. Вы скажете, что это не c/c++, но в с есть вызов system(), execv(), .

Читайте также:
Как программу добавить в исключения антивируса avast

Обычно в Linux сначала пишут консольную версию программы — например, wget, gpg, . а затем пишут графическую оболочку к данным программам. И у вас всегда есть выбор — использовать ли данную программу для своих нужд. Например, для шифрования можно использовать уже разработанный и отлаженный PGP, а для закачки файла из интернет — wget.

В Linux в основном вся графика сохраняется в файлах формата png, jpeg. Самое прекрасное, что вы можете работать с файлами, скажем, по привычке в формате bmp, а затем с помощью посторонней программы сжать их в jpeg или распаковать. Пишу я эту статью в Quanta — очень удобно и практично, можно делать практически все что угодно на html и очень быстро.

Источник: www.linuxlib.ru

Программирование на Си (C) в Ubuntu (Linux). Введение

Всем привет! Это первая статья о программировании на Си, в котором мы настроим тестовый редактор и узнаем немного о истории языка Си, возможностях, преимуществах и недостатках.

Языку Си в 2012 году исполнилось 40 лет. Си стал родоначальником C++, Java, Perl, C#, JavaScript и тд. Это самый популярный язык программирования в мире. Си процедурный язык программирования. Файлы кода имеют расширение .c а заголовочные файлы .h. На Си вы можете программировать для Linux, Windows, Windows Phone, Mac OS, iOS, Android и тд. Любой программист должен владеть языком программирования Си.

Что бы стать программистом читать одних книг и статей мало. Нужно еще и практиковать. Поэтому мы рассмотрим наши уроки обязательно с примерами. Если у вас возникнет какие то вопросы, то можете задавать в комментариях. Так же этим мануалом могут пользоваться пользователи Windows и Mac OS. Пользователи других ОС могут пользоваться например NetBeans в качестве компилятора (NetBeans поддерживает не только Си но и Java, PHP, C++, Python и Ruby)

Настройка

Для программирования на понадобится текстовый редактор (gedit) и компилятор (gcc — входит в состав Ubuntu). Компилятор настраивать не нужно, а вот текстовый редактор настроим сейчас.

Откройте Правка -> Настройки. Установите галочки на следующие пункты:

  • Показывать номера строк;
  • Подсвечивать текущую строку;
  • Подсвечивать парные скобки;
  • Можно так же изменить тему в вкладке Шрифты и цвета.

Пара выполненных «махинаций» с gedit упростят на работу с текстовым редактором. А в дальнейшем мы рассмотрим какой-нибудь IDE (интегрирования среда разработки).

Источник: linux24.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru