Крос программирование

Модератор: Модераторы разделов

Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Крос программирование

Сообщение Ink-85 »

Расскажите как пишут программы под разные платформы?
Например Photoshop или Autodesk Maya? Пишут все в QT или две разные версии программы делают и все переписывают с нуля?
Какие есть современные подходы программирования для разных платформ? Вот у QT например есть поддержка OpenGL, но у Мака развивается OpenCL, a у Масдая вообще ДеректИКС ?
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Крос программирование

Сообщение flank'er »

я собирал linux программы для виндус, пользовался соответственно gcc для виндус MinGW
для сборки конечной программы в чужой системе должны присутствовать используемые библиотеки
если directx нет в linux значит прейдется движок переписывать на opengl, что в принципе нереально
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Крос программирование

Сообщение NickLion »

Обычно часть кода - платформозависимая - выносится в отдельную библиотеку (статическую или динамическую - это уже не столь важно). Эта либка имеет единый интерфейс для всех платформ, а реализация различается. Не знаю, как Autodesk, а Adobe использует свои разработанные библиотеки. Можно пользоваться уже готовыми - Qt, GTK+ - для интерфейса, Qt - не только интерфейс.
Используя готовые кроссплатформенные библиотеки можно писать один код под все платформы, под которые написаны эти либы.

Что касается OpenGL - при чём тут то, что MS разрабатывает свою библиотеку Direct3D? OpenGL от этого под Windows не исчезает. Как было, так и есть, в чём проблема?..
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Крос программирование

Сообщение Crazy »

Интерфейс отделяют от реализации, а при компиляции выбирается реализация под конкретную платформу.

Desipere in loco
Спасибо сказали:
Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Re: Крос программирование

Сообщение Ink-85 »

Идея состоит в создании современной системы архитектурного дизайна , с параметрическими элементами с возможность производить чертежи разной сложности!!! С хорошей отрисовкой 3D , все проектирование ведется в 3d режиме. Программу хочу писать под Мак !!!! и под Линукс !!!

Вот и появился такой вопрос, какой способ программирования выбрать чтобы с наименьшими затратами написать достойный продукт на все платформы?

Сейчас изучаю КуТи и С++ стоит ли делать упор именно на это или может в сторону Обджектив-Си глянуть? Как у него с кросс программированием?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Крос программирование

Сообщение NickLion »

Ink-85 писал(а):
07.02.2010 13:50
Идея состоит в создании современной системы архитектурного дизайна , с параметрическими элементами с возможность производить чертежи разной сложности!!! С хорошей отрисовкой 3D , все проектирование ведется в 3d режиме. Программу хочу писать под Мак !!!! и под Линукс !!!

Вот и появился такой вопрос, какой способ программирования выбрать чтобы с наименьшими затратами написать достойный продукт на все платформы?

Сейчас изучаю КуТи и С++ стоит ли делать упор именно на это или может в сторону Обджектив-Си глянуть? Как у него с кросс программированием?

С использованием Qt Вы вряд ли столкнетесь с проблемами. Т.е. просто откомпилируете приложение под Windows, Linux, Mac. А код будет один.
Насчёт objective-c не подскажу.
Спасибо сказали:
Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Re: Крос программирование

Сообщение Ink-85 »

спасибо
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Крос программирование

Сообщение diesel »

Ink-85 писал(а):
07.02.2010 13:50
Сейчас изучаю КуТи и С++ стоит ли делать упор именно на это или может в сторону Обджектив-Си глянуть? Как у него с кросс программированием?

Стоит отделить "интерфейсную часть" от логики/математики тогда вы сможете для каждой из платформ, при желании, легко сделать свою GUI-обертку. QT под OS X с виду выглядит рабочим, но есть сомнения.
Спасибо сказали:
Iskan Der
Сообщения: 270

Re: Крос программирование

Сообщение Iskan Der »

diesel писал(а):
08.02.2010 12:25
QT под OS X с виду выглядит рабочим, но есть сомнения.

Qt вроде изначально делался в том числе и под мак, так что должен работать нормально, по идее.

Ink-85 писал(а):
07.02.2010 13:50
может в сторону Обджектив-Си глянуть? Как у него с кросс программированием?

Objective-C под маком подразумевает использование Cocoa, что, как я полагаю, с точки зрения портируемости совсем не гуд. Ближайшим аналогом Cocoa для других платформ является GNUStep, в котором многие вещи из Cocoa еще не реализованы (можно здесь посмотреть сравнение).
В общем, имеет смысл остановиться на Qt/C++, имхо. Можно еще в сторону Java посмотреть, кстати говоря.
Спасибо сказали: