cross-platform coding

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

katar
Сообщения: 161
ОС: FreeBSD

cross-platform coding

Сообщение katar »

Пишу прогу под никсами..
Компилирую
gcc -o proga proga.c
Знаю, что как-то можно писать и компилировать для винды. вопрос в том как? :)
Т.е. я добавлю в код ифы
#ifdef (какой-то типа WIN32)
#else
для никсов как-то
#endif
и как компилировать тогда для винды....??
Так вобще можно или я неправ?
-= FreeBSD 7.2/6.4-STABLE =-
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: cross-platform coding

Сообщение Voice »

Правильно, ифдефами подставляете нужный код, а для определение константы есть специальная опция у всех компиляторов.
Посмотрите в мане.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
katar
Сообщения: 161
ОС: FreeBSD

Re: cross-platform coding

Сообщение katar »

Voice писал(а):
30.01.2008 23:34
Правильно, ифдефами подставляете нужный код, а для определение константы есть специальная опция у всех компиляторов.
Посмотрите в мане.

А как компилить чтобы получился exe'шник который будет спокойно запускаться на Windows XP sp2?
man gcc? :)
-= FreeBSD 7.2/6.4-STABLE =-
Спасибо сказали:
Аватара пользователя
Alxn1
Сообщения: 402
Статус: Красноглазик со стажем
ОС: Mavericks

Re: cross-platform coding

Сообщение Alxn1 »

Нет, google MinGW ;)
Спасибо сказали:
katar
Сообщения: 161
ОС: FreeBSD

Re: cross-platform coding

Сообщение katar »

А его ставить отдельно надо(
это еинственный вариант? штатными средствами никак?
-= FreeBSD 7.2/6.4-STABLE =-
Спасибо сказали:
katar
Сообщения: 161
ОС: FreeBSD

Re: cross-platform coding

Сообщение katar »

Вопрос снимается :)
Тупо поставил
/usr/ports/devel/mingw32-gcc
и при помощи него компилю
в коде делаю блоки
#ifdef WIN32
а вот размер экзешника не очень большой? Аж пол метра!
Я его upx сжимаю. Получатся 150-200 кило. Меньше никак?
Вон если под винде писать, то там в MSVC 50 кило весит :)
-= FreeBSD 7.2/6.4-STABLE =-
Спасибо сказали:
netguard
Сообщения: 30

Re: cross-platform coding

Сообщение netguard »

Попробуй еще сделать strip для бинарника.

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

strip -g <file>
Спасибо сказали:
katar
Сообщения: 161
ОС: FreeBSD

Re: cross-platform coding

Сообщение katar »

netguard писал(а):
31.01.2008 12:51
Попробуй еще сделать strip для бинарника.

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

strip -g <file>

Так он же не будет работать с виндовским exe'шником.
Я потому и сжимаю upx'ом, потому что он поддерживает WinPE
-= FreeBSD 7.2/6.4-STABLE =-
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: cross-platform coding

Сообщение serzh-z »

katar писал(а):
31.01.2008 13:19
Так он же не будет работать с виндовским exe'шником.
Почему? strip из комплекта mingw.
Спасибо сказали:
katar
Сообщения: 161
ОС: FreeBSD

Re: cross-platform coding

Сообщение katar »

а) простите, ступил)
спасибо огромное) Сжал до 17 кило) а юпик теперь только до 15 может) круто)
-= FreeBSD 7.2/6.4-STABLE =-
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: cross-platform coding

Сообщение serzh-z »

katar писал(а):
31.01.2008 13:52
а юпик теперь только до 15 может) круто)
Не стоит злоупотреблять этой фигнёй - объём потребляемого места на диске меньше, но потребление памяти больше в случае нескольких запущенных экземпляров сжатой программы.
Спасибо сказали:
katar
Сообщения: 161
ОС: FreeBSD

Re: cross-platform coding

Сообщение katar »

serzh-z писал(а):
31.01.2008 16:04
katar писал(а):
31.01.2008 13:52
а юпик теперь только до 15 может) круто)
Не стоит злоупотреблять этой фигнёй - объём потребляемого места на диске меньше, но потребление памяти больше в случае нескольких запущенных экземпляров сжатой программы.

Да собственно еи и пользоваться теперь не надо...2 килобайта того не стоят)
-= FreeBSD 7.2/6.4-STABLE =-
Спасибо сказали: