본문 바로가기
운영체제/Windows

C ] Windows 에서 PThread 사용하기 (Visual Studio 사용)

by eteo 2022. 8. 24.

 

PThread (Posix Thread)는 유닉스계열의 표준 스레드 라이브러리로 비록 유닉스 계열 라이브러리지만 win32에서도 사용할 수 있는 방법이 있다.

 

 

 

 

 

1. 아래 홈페이지 가서 라이브러리를 다운 받는다.

 

https://www.sourceware.org/pthreads-win32/

 

POSIX Threads (pthreads) for Win32

Open SourcePOSIX Threads for Win32 Current release: 2.9.1 (2012-05-27)See the ANNOUNCEMENT and NEWS for details.Pthreads-w32 release 1.11.0 (2005-06-04) was the last series 1.x.x version! (Version 1.11.0 is a back-port of the 2.7.0 functionality and bug fi

www.sourceware.org

 

 

나는 미러사이트에서 최신 버전 zip 파일을 다운 받았다.

 

 

다운받은 라이브러리 파일을 다른 위치에 옮겨 놓는다.

 

 

 

 

 

2. dll 폴더-x86 폴더 안의 .dll 파일을 C\Windows\SysWOW64 폴더안에 붙여넣기 한다.

 

 

 

 

참고.

64bit 운영체제에서는 System 32 폴더가 64bit 프로세스를 위한 시스템 폴더이다.

SysWOW64 폴더는 용어상으로 혼동하기 쉬운데, Windows 32bit On Windows 64 bit 의 약자로써, 32bit 프로세스를 지원하기 위한 시스템 폴더이다.

 ※ 32bit 프로세스는 SysWOW64 시스템 폴더의 내용을 참조하여 실행되며, 64bit 프로세스는 System 32 시스템 폴더의 내용을 참조하여 실행된다.

출처: https://pung77.tistory.com/23

 

 

 

 

 

 

 

3. Visual Studio 에서 프로젝트를 생성한 후 속성을 설정한다.

main.c 파일을 만들고 프로젝트에서 오른쪽 클릭하여 속성을 누른다.

 

 

 

 

 

설정 전의 구성과 플랫폼을 다시 한번 확인한다.

 

 

3.1. C/C++ - 일반 - 추가 포함 디렉터리에 include 폴더를 추가한다.

 

 

 

 

 

 

 

 

3.2. 링커 - 일반 - 추가 라이브러리 디렉터리에 lib 폴더를 추가한다.

 

 

 

 

 

 

3.3. 링커 - 입력 - 추가 종속성에 lib 폴더 안에 있는 파일들을 추가한다.

 

 

 

 

 

 

4. 전처리기 부분에 다음과 같이 추가한다.

#define HAVE_STRUCT_TIMESPEC
#include <pthread.h>

 

#define HAVE_STRUCT_TIMESPEC 문구는 'timespec': 'struct' 형식 재정의 컴파일 오류를 막기 위한 부분으로 #include <pthread.h> 보다 먼저와야 한다.

 

 

 

 

설정 끝.