Главная  
19.05.2012
Главное меню
Главная
Лаборатория
Книги по дельфи
Инструменты
Статьи
Видео
Юмор
Ссылки
Поиск
База знаний Delphi
Общие вопросы
Windows, WinAPI
Графика, Звук
IDE Delphi
Консоль
Авторизация





Забыли пароль?
Вы не зарегистрированы. Регистрация
Популярное
Каталог@Mail.ru - каталог ресурсов интернет
комментарии
Последние новости мира Delphi
Новости русского мира Delphi
Полезные ссылки
Delphi ресурсы
  • Torry - Крупнейший в интернете сборник Delphi компонент
  • KOL & MCK - Создание программ маленького размера
  • Королевство Delphi - Популярный Delphi ресурс
  • GameDev - Сайт разработчиков игр
  • SourceForge - Ресурс проектов с открытым кодом
Форумы программистов
  • Vingrad.ru - Популярный форум программистов
  • Sources.ru - Популярный форум программистов
  • DelphiMaster - Форум мастеров Delphi
  • SQL.ru - Форум клиент-серверных технологий
  • ProgrammersForum - Форум программистов Delphi
Базы знаний
  • DRKB - крупнейшая оффлайн база знаний Delphi
  • Мир Дельфи - онлайн база знаний Delphi
Блоги
Пишем Linux приложение на Delphi Версия для печати
Рейтинг: / 17
ХудшаяЛучшая 
Написал Snowy   
21.07.2010
tux Kylix умер, но дело его живёт.
Сейчас я раскажу, как можно писать приложения, которые можно компилировать как под Windows, так и под Linux.
Общую методику можно прочитать в книжках по Delphi 7 в разделе про CLX приложения.
Здесь же мы разберём, как компилировать такие приложения прямо в Delphi, не устанавливая ни Linux, ни Kylix.
Впрочем, линукс всё равно потребуется для тестов. Но для этого достаточно даже LiveCD, например knoppix.
Речь пойдет о CrossKylix. Вещица не новая - 6 лет ему уже. Но вышла новая версия, что и натолкнуло на создание небольшого описания на русском.

Первым делом нам потребуется, как ни странно, Delphi :)
Идеально для этого подходит Delphi 7. Delphi 6 тоже сойдет.
Если вы не собираетесь использовать визуальное программирование, а создавать только консольные приложения, то сгодится любая версия от 2005 до 2009. 2010 не годится.

Далее потребуется образ диска Kylix 3. Сам Kylix мы ставить не будет. Из образа нам нужен только компилятор.

Третья составляющая - CrossKylix. Как раз он и позволяет запускать компилятор кайликса в Windows.

После того, как все это у нас в наличии, начинаем.
  • Если дельфи еще не установлен - ставим.
  • Монтируем iso образ с Kylix в виртуальный привод с помощью Daemon Tools Lite, или любого другого эмулятора виртуальных дисков. (Теоретически возможен вариант - просто распаковать образ раром, но не проверял).
  • Устанавливаем CrossKylix. При установке он попросит указать диск с Kylix. Указываем. Инсталлятор сам заберет необходимые для компиляции файлы из дистрибутива.
  • В меню пуск ищем папку CrossKylix, запускаем Install CrossKylix Delphi IDE Plugin.
Внимание! Плагин будет установлен в версию дельфи по умолчанию! Если дельфи у вас несколько, и ставить хотите в другую версию, то запустите дельфи и установите плагин вручную - он в папке кросскайликса ideplugin\crosskylix.dpk
При установке плагина откроется окно настроек и спросит местонахождение кросскайликса. Говорим, куда его установили, все сохраняем и закрываем.
Всё. Установка завершена. Теперь мы готовы создавать наш первый Linux проект.

Запускаем дельфи. Жмем на кнопку New Item. Выбираем CLX Application.
Подробнее про CLX можно прочитать в книжках по Delphi 7. Например в этой.

Можно покидать на форму несколько компонент. К сожалению, набор их не так велик и сторонних CLX компонент довольно мало.
Можно скомпилировать и запустить наше приложение. Оно вполне хорошо чувствует себя под Windows. С отладкой проблем не будет.
Чтобы скомпилировать приложение под линукс, нужно сначала сохранить всё.
Далее идем в меню Project и в самом низу выбираем Compile with CrossKylix.
Если ошибок нет, в папке с программой появится бинарник с именем проекта, но без расширения. Это и есть готовое приложение под Linux.

Кроме CLX приложений, можно также создавать консольные приложения, и прочие, не использующие WinAPI.

Всё...

Линки:

Сразу отвечу на вопрос: "Можно ли перекомпилировать мою программу под линукс?" - Нет! Скомпилировать под линукс можно только CLX и консольные приложения, не использующие WinAPI. VCL приложение не скомпилируется. По крайней мере без превращения его в CLX проект, что возможно но не тривиально.

Добавить новыйПоиск
pet   2010-07-22 07:10:38
хотелось бы еще пример рабочего приложения написаного таким макаром, кроме баловства с hello world
Анонимно   2010-07-23 07:30:46
Проще Lazarus использовать
Дмитрий - Обновление CrossKylix   2010-07-28 08:30:44
Удивительно всё совпало, но в день написания этой статьи после 6 летнего перерыва вышла CrossKylix 1.1.0. :cheer:
Дмитрий - Ссылка вдогонку   2010-07-28 08:31:44
Официальный сайт:
http://crosskylix.untergrund.net/
Snowy   2010-07-28 12:30:40
Нет никакого совпадения - тут же написано, что вышла новая версия, что и натолкнуло на создание инструкции.
Что касается ссылки на оффсайт - она в тексте так же присутствует.
Что касается лазаруса - не проще. Лазарус - такая же альтернатива, как и CLX. Чем-то лучше, чем-то хуже. Но в целом те же лапти, только в профиль.
Akella - Lazarus   2010-07-30 09:53:53
Но Lazarus есть и под винду и под линукс. Но однозначно то, что в среде дельфи писать и отлаживать приложения куда приятнее. B)
wertner - в Delphi 2007 тоже работает   2010-10-20 17:45:14
цитата:
идеально для этого подходит Delphi 7. Delphi 6 тоже сойдет.
Если вы не собираетесь использовать визуальное программирование, а создавать только консольные приложения, то сгодится любая версия от 2005 до 2009. 2010 не годится.


Попробовал на Delphi 2007. Вполне заработало. Была небольшая проблема с отсутствием cfg в проектах, но решил копированием из bin dcc32.cfg и переименованием в .cfg
Потом компилятор CrossKylix ругнулся на неправильные опции, их поудалял (в Code Editor студии нажал Ctrl+O O, и убрал непроходящие опции). Конечно, надо еще поразбираться какие опции вместо них написать.
wertner   2010-10-20 23:32:19
Делал консольное приложение, без визуальных компонент.
Гость   2010-12-04 00:40:22
На D7 сделал, и в правду работает. Запустил на ubuntu готовое приложение, интерфейс корявый пипец.) На Slax уже лучше, но диалог выбора папки, древний, в стиле win98 )
ORKus   2011-01-09 11:02:03
Помогите в ubuntu и Slax консольное приложение работает а вот в Linux с ядром 2.6.16. python 2.4

Доступ тока чрез Теднет!
Прописывал chmod a+x Project1
Прописывал chmod 755 Project1

:(


[root@ /mnt/data/public/Downloads]# ./Project1
./Project1: ./Project1: 1: Syntax error: "(" unexpected
Alex   2011-02-07 09:38:12
Скомпилированный CLX проект плагином не открылся в Ubuntu 9.10. Линукс ошибок не пишет, просто, не запускается и всё:(
Symba   2011-03-09 04:10:12
Posted image
не могу установить
Symba   2011-03-09 14:19:37
:confused: установил...но!чет не понимаю) на убунте 10.10 спрашивает через какое приложение открывать сей бинарник :confused:
Денис - Symba   2011-03-19 15:39:17
Установите Executable Bit, то есть разрешите выполнение в свойствах :cheer:
chmod 777 то есть B)
dog   2011-04-07 19:53:52
to Alex

если при запуске из консоли пишет undefined symbol: initPAnsiStrings
то не хватает библиотеки libborqt-6.9.0-qt2.3.so
тогда надо взять этот файлик, переименовть его в libborqt-6.9-qt2.3.so и положить рядом с бинарником.
Aleksey - re:   2011-06-23 10:19:44
все работает

dog написано:
to Alex

если при запуске из консоли пишет undefined symbol: initPAnsiStrings
то не хватает библиотеки libborqt-6.9.0-qt2.3.so
тогда надо взять этот файлик, переименовть его в libborqt-6.9-qt2.3.so и положить рядом с бинарником.


проблема решилась с помощью файла libborqt-6.9-qt2.3.so
Antinachai   2011-12-10 18:06:49
Как установить Wsocket для Kylix ?
Kirill - WSocket   2011-12-23 09:25:37
меня тоже интересует, как быть с сокетами???
комментарии
Имя:
Заголовок:
UBB-Код:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Security Image
Пожалуйста, введите проверочный код, который Вы видите на картинке.
 
< Пред.   След. >