C: Выполнение файла конфигурации Unix в Windows

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

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

Как я пошел бы о портировании утилит Unix на среде окон?

Мое возможное предположение это для ручного создания./файла конфигурации так, чтобы я мог создать надлежащий make-файл. Я на правильном пути? У кого-либо был опыт при портировании программного обеспечения GNU на окна?

Обновление:

Я скомпилировал его на Коде:: Блоки и я получаем две ошибки:

  • wdiff.c|226|error: необъявленный 'SIGPIPE' (сначала используют в этой функции),

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

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

Это - сигнал Linux, который не поддерживается окнами... equvilancy?

  • wdiff.c|1198|error: необъявленный 'ПРОДУКТ' (сначала используют в этой функции), |

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

Результат:

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

7
задан 5 April 2010 в 02:24
поделиться

4 ответа

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

2
ответ дан 7 December 2019 в 12:18
поделиться

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

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

0
ответ дан 7 December 2019 в 12:18
поделиться

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

0
ответ дан 7 December 2019 в 12:18
поделиться

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

Кроме того, есть отличная книга, написанная в стиле книги В. Ричарда Стивена Advanced Proramming in the UNIX Environment, и книга Windows System Programming, автор Джонсон Харт. У него есть 4-е издание. В ней основное внимание уделено системному программированию, нет никаких вопросов, связанных с графическим интерфейсом.

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

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

3
ответ дан 7 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: