Unix의 pthread.h를 Windows에서 컴파일 할 수 있습니까?
프로그램을 컴파일하려고하면
#include <pthread.h>
그것에 오류가 발생합니다.
pthread.h: No such file or directory
이것을 Windows 환경에서 컴파일 할 수 있습니까?
최신 MinGW와 함께 Vista를 사용하고 있습니다.
Unix 환경으로 이동해야하므로 UNIX 버전 3.5 용 Microsoft Windows 서비스를 사용하고 싶지 않습니다.
pthread.h
스레드 용 Unix / Linux (POSIX) API의 헤더입니다. Cygwin과 같은 POSIX 레이어는 아마도 #include <pthreads.h>
.
네이티브 Windows 스레딩 API는를 통해 노출되며 #include <windows.h>
Linux의 스레딩과 약간 다르게 작동합니다.
그래도 http://sourceware.org/pthreads-win32/ 에서 유지 관리되는 대체 "접착제"라이브러리가 있습니다 . MinGW / VS와 약간의 비 호환성이 있습니다 (예 : 여기 참조 ).
@Ninefingers가 언급했듯이 pthread는 유닉스 전용입니다. 정말 Posix 만.
즉, Microsoft에는 pthread를 복제하는 라이브러리가 있습니다.
UNIX 용 Microsoft Windows 서비스 버전 3.5
pthread.h
Windows에 없습니다. 그러나 Windows에는 CreateThread로 시작하는 광범위한 스레딩 기능이 있습니다.
내 충고는 다른 시스템의 API 렌즈를 통해 WinAPI를 살펴보면 잡히지 않는다는 것입니다. 이러한 시스템은 다릅니다 . 편안한 Linux 자전거 좌석으로 Win32 자전거를 타야한다고 주장하는 것과 같습니다. 글쎄, 좌석이 맞지 않을 수도 있고 어떤 경우에는 그냥 떨어질 수도 있습니다.
스레드는 서로 다른 시스템에서 거의 동일하게 작동하며 ThreadPools 및 mutexs가 있습니다. pthreads
Windows 스레드와 Windows 스레드 를 모두 사용 하면서 Windows 스레드가 제공하는 것보다 훨씬 더 많은 기능을 제공한다고 말할 수 있습니다 pthread
.
다른 API를 배우는 것은 매우 쉽습니다. 개념 (뮤텍스 등)으로 생각한 다음 MSDN에서 그 중 하나를 만드는 방법을 찾으십시오.
TDM-GCC 64x 패키지를 선택하기 만하면됩니다. (MinGW 툴체인의 32 비트 및 64 비트 버전을 모두 포함하며 깔끔한 설치 프로그램에 포함되어 있습니다.) 더 중요한 것은 " winpthread "라이브러리 라는 것이 포함되어 있다는 것 입니다.
그것의 포함 pthread.h
헤더 libwinpthread.a
, libwinpthread.dll.a
32 비트, 64 비트 및 요구 .dll을 모두 정적 라이브러리 libwinpthread-1.dll
및 libwinpthread_64-1.dll
(이, 2016년 1월 6일 현재).
libwinpthread.a
빌드하는 동안 라이브러리 에 연결해야합니다 . 그 외에는 코드가 Linux의 기본 Pthread 코드와 동일 할 수 있습니다. 지금까지 Windows에서 64 비트로 몇 가지 기본 Pthread 프로그램을 컴파일하는 데 성공적으로 사용했습니다.
또는 Windows 스레딩 API를 pthreads API로 래핑하는 다음 라이브러리를 사용할 수 있습니다. pthreads-win32 .
위의 두 가지가 가장 잘 알려진 방법 인 것 같습니다.
도움이 되었기를 바랍니다.
내가 기억하는 것처럼 Windows 용 gnu 도구 모음에는 mingw와 cygwin의 두 가지 배포판이 있습니다.
cygwin의 작업을 기대합니다. "stadard"posix 환경을 만들기 위해 많은 노력을 기울였습니다.
mingw 도구 모음은 런타임에 msvcrt.dll을 사용하므로 아마도 msvcrt의 "thread"api : _beginthread 를 노출합니다.<process.h>
참조 URL : https://stackoverflow.com/questions/2150938/can-i-get-unixs-pthread-h-to-compile-in-windows
'Programing' 카테고리의 다른 글
속성 생성자에 객체를 전달하는 방법 (0) | 2021.01.08 |
---|---|
Exploded Development는 무엇을 의미합니까? (0) | 2021.01.08 |
대표단, 왜? (0) | 2021.01.08 |
Django는 외래 키 열에 대한 인덱스를 자동으로 생성합니까? (0) | 2021.01.08 |
UTF-8은 0 바이트를 포함 할 수 있습니까? (0) | 2021.01.08 |