C: запуск файла настройки Unix в Windows

Я хотел бы перенести несколько приложений, которые я использую в Linux для Windows. В частности, я работал над wdiff. Программа, которая сравнивает различия слово за словом двух файлов.

В настоящее время мне удалось успешно скомпилировать программу в windows через Cygwin. Тем не менее, я хотел бы запустить программу изначально в Windows, подобной проекту: UnixUtils.

Как я могу портировать утилиты unix на среда windows?

мое возможное предположение, чтобы вручную создать ./ настройте файл, чтобы я мог создать правильный файл makefile. Я на правильном пути? Кто-нибудь имел опыт переноса программного обеспечения GNU в windows?

обновление:

я скомпилировал его на Code:: Blocks и получаю две ошибки:

  • wdiff.c / 226 / ошибка: 'SIGPIPE' незаявленных (первое использование в этой функция)

  • readpipe.c: 71: неопределенная ссылка на `_pipe'

  • readpipe.c: 74: неопределенная ссылка на ' _fork

это сигнал linux, который не поддерживается windows... equvilancy?

  • wdiff.c / 1198 / ошибка: "продукт" незаявленных (первое использование в этой функция)/

это находится в configure.в файле... hardcode, вероятно, будет самым быстрым решение...

итог:

MSYS позаботился о проблемах Настройки, однако MinGW не смог решить проблемы posix. Я пытаюсь использовать pthreads не как порекомендовано mrjoltcola. Однако через несколько часов я не смог заставить его скомпилировать или связать с помощью предоставленных библиотек. Я думаю, если бы это сработало, это было бы решение, которое я искал. Особое упоминание Майклу Мэдсену для MSYS.

4 ответов


вы можете взглянуть на MinGW (и MSYS), которые похожи на cygwin, но gcc производят собственные исполняемые файлы Windows. Однако, поскольку эмуляция Unix не так хороша, как cygwin, вам может потребоваться настроить свой код.


да. Если вы придерживаетесь стандартной библиотеки C и функций POSIX, большинство из них доступно в Windows. Возможно, Вам просто нужно найти реализации. Существуют реализации вещей, которые не требуют Cywgin или MinGW (например, пакет pthreads и т. д.)

кроме того, есть отличная книга, написанная в стиле W. Richard Steven's расширенный Proramming в среде UNIX и книги Системное Программирование Windows, автор Джонсон Харт. У него есть 4-е издание. Он фокусируется на системном программировании, нет никакого лечения GUI вообще.

http://www.amazon.com/Windows-Programming-Addison-Wesley-Microsoft-Technology/dp/0321657748

Это лучшая книга, которую я знаю для программирования UNIX, перемещающегося в Windows.


всегда старайтесь следовать стандартам даже при переносе приложений. Компиляторы, совместимые с POSIX, существуют в windows / Linux. Вы можете попробовать mingw. Он имеет полную цепочку инструментов, необходимую для создания стандартного приложения POSIX (GNU Linux). Проверьте Dev-Cpp это облегчает работу.


MinGW - Это самый простой способ получить gcc и связанные двоичные утилиты (включая gdb) на ПК с Windows. Он включает файлы заголовков и библиотеки импорта, чтобы вы могли вызывать собственные API Windows. Если вы хотите больше интегрированной среды разработки IDE, вы можете скачать Microsoft бесплатно Visual Studio Express C++.

в любом случае вам, вероятно, придется преобразовать некоторые вызовы функций для использования конкретных API Windows (Если вы хотите книгу Я бы также рекомендовал книгу Харта, упомянутую в ответе mrjoltcola). Для простых инструментов командной строки это преобразование обычно не имеет большого значения, большие кошмары переноса, как правило, включают инструменты с GUIs, которые имеют глубокие встроенные зависимости от GUI-фреймворка, предоставляемого ОС.