Смеркалось.
Написал я как-то программку, хорошую, годную, естественно, под линукс. Написал на Си, для окнорисования использовал gtk и чуть-чуть немножечко Lua для всякого скриптования. Написал и пользуюсь и люди пользуются и вообще все замечательно.
Теперь (начинает играть тревожная музыка) о проблеме: некоторые несознательные граждане пользуются виндой и им нужна эта моя программка на винду: казалось бы, все кроссплатформенное, бери, компиляй под винду и раздавай кактусоедам. И я, собственно, так и сделал: построил билд-машинку, поднял на ней MXE (на редкость ловкая штука), немножечко переколдовал мейкфайл и все замечательно работало до тех пор пока я не подключил в свою lua-логику ейную библиотеку про сокеты.
Оказалось, что виндоус-версия ничего ни про какие луа сокеты не знает (сам луа у меня статически вкомпилен в бинарик основной программы), ну, думаю, не беда: нагуглил скомпиленный уже dll с этими сокетами, сунул в папку с программой – невразумительно ругается (%1 не является приложением вин32), ладно, думаю, я не тупее всех, склонил к себе исходники этих луа-сокетов, изородовал тамошний мейкфайл – стало оно мне dll-ку собирать вместе с проектом, но она (длл-ка) тоже не подхватывается, пишет «не найдена указанная процедура» – сижу, наслаждаюсь информативностью виндовых сообщений об ошибках…
Теперь вопросы:
-
Как это вообще побеждать?
-
Как это делается правильно?
-
Как это можно победить наименьшей кровью? (ну, например, заставлять кактусоедов сначала что-то там себе устанавливать на винду, а потом уже пущать мою прогу)
Линукс тут при том, что программа разрабатывается под линукс, а виндоверсия – приятный бонус в данном случае.
Спасибо!