Как делать программы под Linux?
Модератор: Модераторы
Как делать программы под Linux?
Все время на глаза попадались исходники программ под linux, которые собирались непосредственно на месте. При возникновении желания разрабатывать под linux ПО, программист в linux системах вообще может один раз скомпилировать ПО и распространять или под каждый дистрибутив, под каждое оконное решение надо делать свою копию?
Re: Как делать программы под Linux?
в лине два варианта: qt и gtk.
Отсюда вывод: пишем или под то, или под другое, или 2 бинарника под оба ДЕ.
Дистры не сильно влияют. Правда, иногда, бывают казусы.
Можно воспользоваться mseide. Один бинарник в лине. Отрисовка не системная.
Отсюда вывод: пишем или под то, или под другое, или 2 бинарника под оба ДЕ.
Дистры не сильно влияют. Правда, иногда, бывают казусы.
Можно воспользоваться mseide. Один бинарник в лине. Отрисовка не системная.
Re: Как делать программы под Linux?
ок, спасибо.
А отладка и компиляция в случае нашем требует работы под linux, да?
А отладка и компиляция в случае нашем требует работы под linux, да?
Последний раз редактировалось Sharfik 26.01.2016 14:32:33, всего редактировалось 1 раз.
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Re: Как делать программы под Linux?
Необязательно MSE. fpGUI тоже сам рисует.
А между дистрибутивами у FPC совместимость хорошая.
А между дистрибутивами у FPC совместимость хорошая.
Re: Как делать программы под Linux?
Mirage пробовал я fpGUI.... Уж не знаю откуда у меня руки. МСЕ - более адекватен. Поэтому и не написал о нем.
Sharfik если не ошибаюсь: существует кросс-компиляция (не пробовал).
Можно под виртуалкой запускать (бывают артефакты).
Sharfik если не ошибаюсь: существует кросс-компиляция (не пробовал).
Можно под виртуалкой запускать (бывают артефакты).
Re: Как делать программы под Linux?
Открыл Lazarus, написал программу и радуйся. В чем проблема, не пойму вопрос.
Re: Как делать программы под Linux?
Sharfik писал(а):Все время на глаза попадались исходники программ под linux, которые собирались непосредственно на месте. При возникновении желания разрабатывать под linux ПО, программист в linux системах вообще может один раз скомпилировать ПО и распространять или под каждый дистрибутив, под каждое оконное решение надо делать свою копию?
В линуксе всё довольно хитро с этим. Нужно учитывать архитектуру процессора, зависимость от внешних библиотек, версии ядра и т.д.
Отдельный бинарь скомпилирован под определённую архитектуру (intel/arm, 32/64), под непредназначенной не запустится. Если 64битный линукс донастроить, то в нём можно запустить 32битное приложение, но просто так не получится.
На тему зависимостей — лучше вообще не зависить от внешних библиотек и всё носить в себе, это даст максимально возможную переносимость. (Но это недостижимый идеал.) Иначе нужно следить за тем, чтобы используемые библиотеки были установлены в системе, они были правильно версии, всегда и везде правильно доступны из программы и т.д.
С версией ядра всё понятно — нужно по-максимуму соблюдать стандарты и не использовать особенности конкретных дистрибутивов.
Если аккуратно учесть все эти факторы, то можно получить переносимый между машинами одной архитектуры бинарь.
А отладка и компиляция в случае нашем требует работы под linux, да?
Скомпилировать бинарь можно где угодно («кросскомпиляция»). Мне кажется, что уже сам факт того, что бинарь собран кросскомпилятором говорит о том, что бинарь не привязан к чему-то совсем специфичному.
Где отлаживаться зависит от того, что отлаживать. Ясно, что, например, узнать «а программа вообще запустится ли» можно только попытавшись это сделать на настоящем линуксе.
Re: Как делать программы под Linux?
в лине два варианта: qt и gtk.
Побольше, учитывая разность в версиях QT и GTK.
Ясно, что, например, узнать «а программа вообще запустится ли» можно только попытавшись это сделать на настоящем линуксе.
Причем перед релизом правильнее запустить прогу на виртуалке со свежеустановленным пингвином, чтобы не облажаться из-за отсутствия в установочном пакете тех или иных блюмблятек.
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Re: Как делать программы под Linux?
Можно грузиться с live cd в виртуалке. И ставить не надо и дистрибутивов на одну виртуалку много. Но для автотестов лучше виртуалки настроить.
Re: Как делать программы под Linux?
Авто тесты вообще делать не умею)
В остальном спасибо)
В остальном спасибо)
Re: Как делать программы под Linux?
И ещё один вопрос в тему.
Сварганил я для себя небольшую консольную утилиту. Ни от чего не зависит.
Распространять пока не планирую.
Поэтому просто скопировал бинарь в /usr/local/bin. Посредством sudo, есссно.
Во всяком случае, так работает.
Но правильно ли это? Если нет, то как надо правильно?
Сварганил я для себя небольшую консольную утилиту. Ни от чего не зависит.
Распространять пока не планирую.
Поэтому просто скопировал бинарь в /usr/local/bin. Посредством sudo, есссно.
Во всяком случае, так работает.
Но правильно ли это? Если нет, то как надо правильно?
Re: Как делать программы под Linux?
Тут лучше мыслить категориями удобно/неудобно (исходя из задачи) и принято/не принято.
Если пользоваться программой будет только один пользователь (Вы), то обычно принято класть бинарь себе в $HOME/bin/ — тут и с правами всё ок, и вызываться будет для данного пользователя, и нигде в конфликт с установленными из пакетов бинарями не войдёт.
Если предполагается, что пользоваться бинарём будут многие пользователи (реальные или системные), то, действительно, стоит класть в глобальное место, но наиболее предусмотренное для этого места, мне кажется, может варироваться от одного дистрибутива линукса к другому. Я бы просто создал свою корневую директорию /doj/bin/ и туда складывал бы всё своё глобальное.
Если пользоваться программой будет только один пользователь (Вы), то обычно принято класть бинарь себе в $HOME/bin/ — тут и с правами всё ок, и вызываться будет для данного пользователя, и нигде в конфликт с установленными из пакетов бинарями не войдёт.
Если предполагается, что пользоваться бинарём будут многие пользователи (реальные или системные), то, действительно, стоит класть в глобальное место, но наиболее предусмотренное для этого места, мне кажется, может варироваться от одного дистрибутива линукса к другому. Я бы просто создал свою корневую директорию /doj/bin/ и туда складывал бы всё своё глобальное.
Re: Как делать программы под Linux?
Дож писал(а):Я бы просто создал свою корневую директорию /doj/bin/ и туда складывал бы всё своё глобальное.
Спасибо.
Может, я бы так и сделал, но тогда пришлось бы добавлять каталог в переменную окружения PATH.
Стрёмно, так как не настолько хорошо пока освоил администрирование Линуха.
Да, кстати. Моя самодельная утилита предназначена для пользования всеми юзерами компутера.
Re: Как делать программы под Linux?
Дож,
это плохой совет, он целиком поперек FHS -- filesystem hierarchy standard.
это плохой совет, он целиком поперек FHS -- filesystem hierarchy standard.
Re: Как делать программы под Linux?
Когда разбирался в первый раз с линуксом, то что то вроде такого списка находил.
Ясно и понятно, что куда и зачем. Потом оказалось, что разработчикам дистрибутивов на систематизацию подобную плевать, и на дистрибутивах, кто я пробовал ставить это выполнялось условно. mnt черти где был в ASP
Я так понимаю путь один следует рассматривать - /usr/bin/
Ясно и понятно, что куда и зачем. Потом оказалось, что разработчикам дистрибутивов на систематизацию подобную плевать, и на дистрибутивах, кто я пробовал ставить это выполнялось условно. mnt черти где был в ASP
Я так понимаю путь один следует рассматривать - /usr/bin/
