Решено: о переносимости бинарных файлов

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

MakkyWelly
Сообщения: 97
ОС: по обстоятельствам :)

Решено: о переносимости бинарных файлов

Сообщение MakkyWelly »

Здраствуйте, если можно - два вопроса. Подскажите, пожалуйста, что будет, если я скомпилированный бинарник (в частности, на Mandriva) попытаюсь запустить на FREE BSD 4, на которой у меня нет доступа к компилятору. Дело в том, что не хочется использовать интерпретируемый скрипт, а нужно заюзать исполнимый файл (хостиг free, поэтому много ограничений). Вобще, как обстоят дела с переносом бинарных файлов (без so зависимостей) на разные Linux/Unix системы?

И вторая проблемка такая - некий код стандартный gcc пилит за милую душу, а вот под Windows - на этапе линковки и VC ("unresolved external symbol имя_функции") и MinGW-gcc ("undefined reference to имя_функции", причём той же) ошибаются. ???
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill next sacrifice, each sacrifice
Спасибо сказали:
MakkyWelly
Сообщения: 97
ОС: по обстоятельствам :)

Re: Решено: о переносимости бинарных файлов

Сообщение MakkyWelly »

Да, насчет "без so зависимостей" это я загнул )))

http://freebsd.org.ru/handbook/linuxemu.html - усёк, сабж возможен при наличии модуля ядра... При том, что у меня вообще запрещено исполнение бинарных файлов. Видимо реализовать такую возможность получится только на VPS.

А как насчет второй проблемы? Что может означать такие сложности в линковке?
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill next sacrifice, each sacrifice
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: о переносимости бинарных файлов

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

MakkyWelly писал(а):
21.08.2009 19:24
Что может означать такие сложности в линковке?
На винде отсутствует нужная функция?
Спасибо сказали:
MakkyWelly
Сообщения: 97
ОС: по обстоятельствам :)

Re: Решено: о переносимости бинарных файлов

Сообщение MakkyWelly »

На винде отсутствует нужная функция?

Да нет - ошибка на одной и той же ++своей++ функции (в моем коде). Что то меня это место смущает, примерно так:

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

// если схематично:
char* some_itit();
main () { some_itit("___"); }

Естественно - не то, но под Linux всё чудесным образом работает, ещё и правильно.
Ещё - эта функция нигде больше объявлена быть не может.
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill next sacrifice, each sacrifice
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Решено: о переносимости бинарных файлов

Сообщение Crazy »

много файловая программа? Где тело some_itit() ?

Desipere in loco
Спасибо сказали:
Аватара пользователя
begin2009
Сообщения: 349
Статус: Ламер со стажем
ОС: без глюков

Re: Решено: о переносимости бинарных файлов

Сообщение begin2009 »

По второму вопросу пока не все понял, а по первому, не советую переносить бинарники даже между разными линуксами. Программу (оконную), скомпилированную в мандриве, запустил в альте. Работать-то она работала, но вот со шрифтами была морока. Надписи вылезали с кнопок. Желательно в той оси и компилировать, на которой программа будет работать.

PS Не спросил, а в чем под WINDOWS компилируете? Попробуйте систему WxDev-C++ Где скачать, посмотрите тут. Мне кажется что практически все, что идет под gcc, идет и под WxDev-C++
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
Спасибо сказали:
MakkyWelly
Сообщения: 97
ОС: по обстоятельствам :)

Re: Решено: о переносимости бинарных файлов

Сообщение MakkyWelly »

Со вторым тоже разобрался. Это был системный вызов (надо было сразу man набирать, ибо оно рулит). Непривычно, что его использование приходится объявлять. Спасибо)

Желательно в той оси и компилировать, на которой программа будет работать.

Распостраняйте, люди, программы в исходных кодах))
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill next sacrifice, each sacrifice
Спасибо сказали: