Я могу заставить pthread.h Unix компилировать в Windows?

Если я пытаюсь скомпилировать программу с

#include <pthread.h>

в нем я получаю ошибку:

pthread.h: No such file or directory

Действительно ли возможно заставить это компилировать в среде Windows?

Я использую Vista с последним MinGW.

Я не хочу использовать Microsoft Windows Services для Версии 3.5 UNIX, поскольку я должен буду переместить это в среду Unix.

55
задан vaxquis 6 May 2016 в 05:41
поделиться

3 ответа

Pthread.h - заголовок для API UNIX / Linux (POSIX) для потоков. Слой POSIX, такой как Cygwin, вероятно, будет компилировать приложение с #inClude .

Нативные Windows Threading API открывается через #include , и он работает немного по-разному для резьбы Linux.

Тем не менее, есть замена библиотеки «клея», поддерживаемая в http://sourceware.org/pthreads-win32/ ; Обратите внимание, что оно имеет несколько небольших несовместимости с MingW / VS (E.g. см. здесь ).

49
ответ дан 7 November 2019 в 07:24
поделиться

Как упоминалось @ninefingers, Pthreads - это только UNIX. Только POSIX, правда.

, который сказал, что Microsoft имеет библиотеку, которая дублирует Pthreads:

Microsoft Windows Services для библиотеки Unix версии 3.5

Download

17
ответ дан 7 November 2019 в 07:24
поделиться

Есть, как я помню, два распределения инструментов GNU для Windows: Mingw и Cygwin.

Я ожидал, что Cygwin Work - было сделано много усилий, чтобы сделать эту среду «Стадиарную стадию».

MINGW Toolchain использует msvcrt.dll для его времени выполнения и, следовательно, будет выдержать API MSVCRT «Thread»: _BegIntHoread , который определен в

3
ответ дан 7 November 2019 в 07:24
поделиться
Другие вопросы по тегам:

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