LINUX.ORG.RU

Нужна помощь в сборке програмы для Linux из под Windows


0

1

Нужна помощь в сборке програмы для Linux из под Windows

я пробовал использовать Cygwin, разные версии gcc, однако все попытки оканчиваются на следующей ошибке: /tmp/ccxPL009.o:hasp_demo.c:(.text+0x556): undefined reference to `_hasp_get_size' /tmp/ccxPL009.o:hasp_demo.c:(.text+0x649): undefined reference to `_hasp_read' ... и т.д. подобные ошибки вопрос - как собрать программу, не имея Linux? вот программа: http://zalil.ru/30708436

Ответ на: комментарий от Lorchanko

читал я маны всяческие однако собственного интелекта не хватает. какая-то проблема при линковке - компилятор добавляет подчеркивание, а линковщик не может найти нужные функции в либе

флаги которые должны запретить добавлять подчеркивание не помогают ( -fleading-underscore, -fno-leading-underscore)

ValeriVP
() автор топика
Ответ на: комментарий от ValeriVP

в дополнение - из под Ubuntu в codeblock и используя mk все нормально собирается. а мне надо так же, но с перламутровыми пуговицами :)

ValeriVP
() автор топика
Ответ на: комментарий от amorpher

вот как раз ubuntu у меня на виртуалке. там все работает

но мне надо компилировать эту прогу (не эту, но подобную, с теми же проблемами) из под windows, т.к. это часть пакета поставки. а основная часть поставки собирается из под windows. причем собирается динамически, с изменяемыми параметрами.

ValeriVP
() автор топика
Ответ на: комментарий от Reset

а каким образом это решит проблему?

проблема не скомпилировать программу в принципе (под Linux никаких проблем нет),

а скомпилировать ее из виндового cmd файла, без участия человека (кроме запуска этого CMD файла)

ValeriVP
() автор топика
Ответ на: комментарий от ValeriVP

так напиши скрипт, который по ssh дергает нужный скрипт внутри vmware, а сорцы внутри vmware можно монтировать по smb

Reset ★★★★★
()
Ответ на: комментарий от Reset

:))) сложно много новых непонятных слов

можно пример скрипта, который при запуске на винде, обратится к удаленной машине на Linux, запустит там make, пождет завершения и продолжит выполнятся под виндой?

ValeriVP
() автор топика
Ответ на: комментарий от Reset

спасибо большое такой подход должен решить задачу

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

ValeriVP
() автор топика
Ответ на: комментарий от Reset

процесс в общем (как есть сечас): cmd собирает: выполняет различные настройки (файлы создает, копирует куда надо, ...) 2 библиотеки под windows компилирует нужный набор баз данных формирует, все это обрабатывает и запихивает в ахив

а надо еще в процесс добавить сборку библиотеки под Linux

ValeriVP
() автор топика
Ответ на: комментарий от ValeriVP

Всё равно собирать надо под target-линух, а не под сферический линух в вакууме, поэтому кросскомпилятор тут мало поможет. Если хочешь получить гарантированный результат, то без виртуалки (или chroot'а если build машина работает на линухе) не обойтись.

Reset ★★★★★
()
Ответ на: комментарий от Reset

а можно с этого места подробнее т.е. если собрать прогу под убунтой, то под другим линуксом она может не заработать???

ValeriVP
() автор топика
Ответ на: комментарий от ValeriVP

Более того: она может не заработать даже под другой убунтой, если не удовлетворены зависимости(если ты не линковал свою прогу статически).

drull ★☆☆☆
()
Ответ на: комментарий от ValeriVP

Если будешь таскать все библиотеки с собой, заработает. Если нет, то не факт, что на целевой системе они установлены. В общем та же ситуация, что и на Windows.

PayableOnDeath
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.