hiredis for windows

hiredis windows 구글링을 하면 윈도우용으로 포팅된것을 사용할 수 있다고 나온다.

MS OpenTech
공식웹 https://msopentech.com
프로젝트 https://github.com/MSOpenTech
에서는 다양한 오픈소스를 윈도우용으로 포팅하여 제공해주고 있다.
redis 는 공식적으로 리눅스만 지원하지만 MSOpenTech 에서 윈도우용으로 포팅된 Redis 를 제공한다. Redis 프로젝트내에 hiredis 가 있는데 이것을 사용하기 위함이다.

# 윈도우용 redis 다운 받기
git clone https://github.com/MSOpenTech/Redis

# hiredis library 빌드 하기
msvs\RedisServer.sln 실행
hiredis -> 속성 -> 구성 -> 일반 -> 플랫폼 도구 집합 -> visual studio 버전 선택 후 빌드

# vs2012 이전 버전에서는 'winapifamily.h' 에러가 발생하여
C:\Program Files (x86)\Windows Kits\8.0\Include\shared\ 경로 추가

# hiredis 자체는 lib 빌드는 잘 된다.
msvs\x64\Debug\hiredis.lib
msvs\x64\Release\hiredis.lib

# 하지만 프로젝트에 hiredis.lib 사용하려면 문제가 발생한다.
# 우선 소스 경로 추가
src\
deps\hiredis

# vs2010 의 경우 우선 'winapifamily.h' 에러가 발생한다.
# C:\Program Files (x86)\Windows Kits\8.0\Include\shared\ 경로 추가하면 이부분은 해결된다.

오류 1 error C1083: 포함 파일을 열 수 없습니다. 'winapifamily.h': No such file or directory c:\users\ysoftman\downloads\redis-win-2.8.17.3\src\win32_interop\WS2tcpip.h 51

# vs2010, vs2012 모두 매크로 중복 정의 에러가 발생한다.
오류 1 error C4005: 'ECONNRESET' : 매크로 재정의 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\errno.h 100
오류 2 error C4005: 'EINPROGRESS' : 매크로 재정의 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\errno.h 104
오류 3 error C4005: 'ETIMEDOUT' : 매크로 재정의 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\errno.h 130

결론적으로 MSOpenTehc 에서 제공하는 hiredis 윈도우용으로 사용 실패다.
최신 버전을 바로 사용할 수도 없고 vs 버전별 설정해야할 것도 다른것을 봤을때 MSOpenTech hiredis windows 빌드는 왠만하면 쓰지 않는 것이 정신건강에 좋을 것 같다.ㅠ

대신 hiredis 자체를 VS 프로젝트로 포팅한 것을 발견했다.
https://github.com/texnician/hiredis-win32

comments:

댓글 쓰기