Здравствуйте, Аноним, Вы писали:
А>Потдскажите какие строчки поменять\добавить?
Если программа использует не только стандартные функции и библиотеки C/C++ так просто "на халяву" вы из linux в windows код не перенесёте. Нужно разбираться с работой. Я смотрю, там у вас есть в частности сокеты, а они в linux и windows не совсем одинаково работают, что описано хотя бы в этой статье: Разница в работе с сокетами Windows и Linux
Потому что это в Posix системах такая вещь: unistd.h
Дальше и смотреть особо не стал. Если программа активно работает с системой, а не только через стандартные функции C/C++ вам надо понимать, что она делает в linux и как можно перенести в windows. Механический подход, скорее всего, не прокатит. Некоторые posix-вещи не имеют прямых аналогов в windows, самая известная — fork() и требуют переписывания.
Могу ещё сказать, что если вы пытаетесь перенести какую-то более-менее известную OpenSource-программу, есть смысл поискать получше, скорее всего уже кто-то её портировал
Re: портирование проекта linux -> windows
От:
Аноним
Дата:
17.02.08 21:42
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Потдскажите какие строчки поменять\добавить? А>вот на эту
...
Если надо быстро пользуй cygwin.
А так, все инклюды которых нет просто коментируй примерно так
#ifndef __WIN32__
#include <unistd.h>
..
#endif
макросы с произвольным кол-вом параметров:
или пользуй minGW
или пиши заглушки типа
>#define ts_debug(level, fmt, args...) __ts_debug_i(level, __FILE__, __LINE__, fmt, ##args)
Здравствуйте, Аноним, Вы писали:
А>На что можно заменить? А>#include <sys/uio.h> А>#include <sys/ioctl.h>
Эти модули поддерживают разные операции ввода-вывода. Надо смотреть, что конкретно используется.
А>#include <dlfcn.h>
Необходим для работы с разделяемыми динамически-загружаемыми библиотеками.
Скорее всего, вам достаточно уже подключенных windows.h и winsock2.h. Как вам уже посоветовали, комментируете отсутствующие в Win32-среде *.h , а далее смотрите на какие отсутствующие декларации функций ругается компилятор. Лезете в документацию по Linux/Posix, читаете что они делают и пытаетесь припомнить аналог в Win32.
У меня такое впечатление, что вы хотите как-то по-быстрому запихать linux-программу в Windows. Весьма вероятно, ничего хорошего не выйдет, программирование для linux и для windows имеют достаточно много отличий, чтобы потребовалось переписать около 20%-30% слоя кода, тесно завязанного на систему.
Могу присоединиться к совету использовать Cygwin или MinGW, если вам требуется быстро скомпилировать и заставить работать в Windows линуксовый код.
Cygwin — добавляет в Windows библиотеки и окружение, реализующие posix-вызовы, создавая Unix внутри Windows. Часто самый простой способ заставить работать linux-программу в Windows, часто достаточно её просто скомпилировать в Cygwin. Но для работы, очень возможно, будет необходим установленный Cygwin, хотя может оказаться достаточно некоторых dll от него.
MinGW + MSys — порт компилятора gcc и shell-окружения в Windows. В отличие от Cygwin, откомпилированные в MinGW + MSys программы работают с windows-окружением и не требуют MSys для своей работы. Возможно, потребуется некоторая доработка.
Re[2]: портирование проекта linux -> windows
От:
Аноним
Дата:
18.02.08 14:28
Оценка:
Здравствуйте, superlexx, Вы писали: S>ecли проект не ширпотребный, то можешь попробовать interix (Subsystem For UNIX Applications), там POSIX с forkом и все твои headerы есть.
Нашел там только #include <sys/ioctl.h> , в рочем лучше чем ничего, а #include <dlfcn.h> выдернул из другово проекта, вроде на нем не ломается.
Категорически против вЕндолинуксяторов, а вот mingw попробую, но хочутся получить просто "прогу" под винду)
> или пиши заглушки типа >#define ts_debug(level, fmt, args...) __ts_debug_i(level, __FILE__, __LINE__, fmt, ##args)
Хм, а можно подробнее, как это работает? Или как в гугле спросить непорусски?)