Помогите собрать кросплатформенную программу (Linux-OK, Win-Err ???)

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

west329
Сообщения: 4

Помогите собрать кросплатформенную программу

Сообщение west329 »

Всем добрый день. Ситуация следующая, Есть небольшая программа которая работала только на линуксе, недавно смотрю в нете появилась на виндовс платформе, работет как в консоле, фенкционал при этом не изменился. Позднее погуглил, понял что можно линукс программы портировать под виндовс, что и сделали её разработчики. Для этой цели как я понял используется некий софт cygwin.

Такой вопрос, могули ли я доставить в свой линукс cygwin, чтоб при сборке make win, проект компилировался для виндовс, в make файле всё уже прописано.
???.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5456
ОС: Gentoo

Re: Помогите собрать кросплатформенную программу

Сообщение /dev/random »

Советую для начала почитать где-нибудь, хоть в википедии, чтотакое cygwin, что такое mingw, и чем они отличаются.
Спасибо сказали:
Аватара пользователя
uptime
Сообщения: 1661
Статус: Drinker with computing problems
ОС: kubuntu 8.04

Re: Помогите собрать кросплатформенную программу

Сообщение uptime »

west329, а то, что вы описАли, называется кросс-компиляцией...
The answer, my friend, is blowin' in the wind.
The answer is blowin' in the wind.
Спасибо сказали:
west329
Сообщения: 4

Re: Помогите собрать кросплатформенную программу

Сообщение west329 »

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

Код: Выделить всё

linux:    i386-pc-linux
freebsd:    i386-pc-freebsd
tuxbox:    cross-powerpc-tuxbox-linux
win:    cross-i386-pc-cygwin
cygwin: i386-pc-cygwin

std:    linux \
    cross-i386-pc-cygw
...
...
...
...
######################################################################
#
#    Cygwin crosscompiler
#
######################################################################
cross-i386-pc-cygwin:
    @-$(MAKE) --no-print-directory \
        -f Maketype TYP=$(subst cross-,,$@) \
        OS_LIBS="" \
        OS_CULI="-lncurses" \
        OS_PTLI="-lpthread" \
        DS_OPTS="-O2 -DOS_CYGWIN32" \
        DS_CFLAGS="-c" \
        DS_LDFLAGS="" \
        DS_ARFLAGS="-rvsl" \
        DS_CC=i686-pc-cygwin-gcc \
        DS_AR=i686-pc-cygwin-ar \
        DS_LD=i686-pc-cygwin-ld \
        DS_RL=i686-pc-cygwin-ranlib \
        DS_ST=i686-pc-cygwin-strip

######################################################################
#
#    Cygwin native
#
######################################################################
i386-pc-cygwin:
    @-$(MAKE) --no-print-directory \
        -f Maketype TYP=$(subst cross-,,$@) \
        OS_LIBS="" \
        OS_CULI="-lncurses" \
        OS_PTLI="-lpthread" \
        DS_OPTS="-O2 -DOS_CYGWIN32 -I /tmp/include" \
        DS_CFLAGS="-c" \
        DS_LDFLAGS="" \
        DS_ARFLAGS="-rvsl" \
        DS_CC=gcc \
        DS_AR=ar \
        DS_LD=ld \
        DS_RL=ranlib \
        DS_ST=strip
...
...
...
...

я не профи в линуксе и тем болле в кросплатформенных сборках, прошу направить на путь правильный, почитал немного, понял что нужно для сборки MinGW, вот только незнаю как..
Кстати пробовал на линуксе исходники собираются без проблем.

р.с. Пробовал это дело компилировать в cygwin в виндовс среде, нехочет ругается.
Спасибо сказали:
Аватара пользователя
GRS
Сообщения: 236
Статус: C++ Pro
ОС: Suse10.2/XP

Re: Помогите собрать кросплатформенную программу

Сообщение GRS »

west329 писал(а):
12.09.2008 15:17
Мне самому интересно как софт написанный изначально на линуксе работает под виндовсом, и самое главное собирается без корекции сырцов.

Очень просто - используется кроссплотформенные библиотеки - stl, boost, qt etc.
Другое дело когда приложение написано с использованием ОС API, тогда нужна эмуляция.

west329 писал(а):
12.09.2008 15:17
р.с. Пробовал это дело компилировать в cygwin в виндовс среде, нехочет ругается.

скорее всего необходимых библиотек нету ...
хотя оно тебе надо ? Я имею в виду сборку под cywin ? Там очень медленно все работает.
У MS есть некий продукт (300 метров с чем-то, название забыл), включает в себя linux core-utils, с компилятором. Работает намного быстрее, правда проект этот закрыли несколько лет назад, всмысле развитие прикратили, скачать его еще можно.
Спасибо сказали:
west329
Сообщения: 4

Re: Помогите собрать кросплатформенную программу

Сообщение west329 »

GRS писал(а):
12.09.2008 15:42
west329 писал(а):
12.09.2008 15:17
Мне самому интересно как софт написанный изначально на линуксе работает под виндовсом, и самое главное собирается без корекции сырцов.

Очень просто - используется кроссплотформенные библиотеки - stl, boost, qt etc.
Другое дело когда приложение написано с использованием ОС API, тогда нужна эмуляция.

west329 писал(а):
12.09.2008 15:17
р.с. Пробовал это дело компилировать в cygwin в виндовс среде, нехочет ругается.

скорее всего необходимых библиотек нету ...
хотя оно тебе надо ? Я имею в виду сборку под cywin ? Там очень медленно все работает.
У MS есть некий продукт (300 метров с чем-то, название забыл), включает в себя linux core-utils, с компилятором. Работает намного быстрее, правда проект этот закрыли несколько лет назад, всмысле развитие прикратили, скачать его еще можно.


Хочу хоть одним способом попробовать собрать, и выдавить ехе файл, но никак.

Нащет скорости не переживаю программа небольшая килобайт 250, обрабатывает данны с ком порта и назад выкидывает.

Получится собрать через MinGW или нужно cygwin мучать, растолкуйте файл make, Cygwin crosscompiler и Cygwin native ??
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Помогите собрать кросплатформенную программу

Сообщение Stauffenberg »

GRS писал(а):
12.09.2008 15:42
У MS есть некий продукт (300 метров с чем-то, название забыл), включает в себя linux core-utils, с компилятором. Работает намного быстрее, правда проект этот закрыли несколько лет назад, всмысле развитие прикратили, скачать его еще можно.

Так а что за продукт-то?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
sendmoreinfo
Сообщения: 50

Re: Помогите собрать кросплатформенную программу

Сообщение sendmoreinfo »

west329 писал(а):
12.09.2008 14:08
Такой вопрос, могули ли я доставить в свой линукс cygwin, чтоб при сборке make win, проект компилировался для виндовс, в make файле всё уже прописано.


Да, это делается примерно так: http://x.cygwin.com/docs/cg/prog-build-cross.html
Спасибо сказали:
west329
Сообщения: 4

Re: Помогите собрать кросплатформенную программу

Сообщение west329 »

sendmoreinfo писал(а):
12.09.2008 22:45
west329 писал(а):
12.09.2008 14:08
Такой вопрос, могули ли я доставить в свой линукс cygwin, чтоб при сборке make win, проект компилировался для виндовс, в make файле всё уже прописано.


Да, это делается примерно так: http://x.cygwin.com/docs/cg/prog-build-cross.html


Благодарю за ссылку, что-то подобное искал. Буду разбиратся. Возникнут вопросы отпишусь :)
Спасибо сказали: