2017-04-22 2 views
0

부스트의 로깅 라이브러리를 사용하려고하지만 컴파일하는 데 어려움이 있습니다. 다른 모든 부스트 라이브러리는 올바르게 컴파일됩니다.cygwin에서 boost 로그에 컴파일 오류가 발생했습니다. win32_api.hpp

./b2 -j5 link=static 

출력의 짧은 요약은 다음과 같습니다 :

gcc.compile.c++ bin.v2/libs/log/build/gcc-5.4.0/release/link-static/threading-multi/posix/ipc_reliable_message_queue.o 
In file included from ./boost/interprocess/errors.hpp:41:0, 
from ./boost/interprocess/exceptions.hpp:24, 
from libs/log/src/posix/ipc_reliable_message_queue.cpp:49: 
./boost/interprocess/detail/win32_api.hpp: In function ‘int boost::interprocess::winapi::release_semaphore(void*, long int, long int*)’: 
./boost/interprocess/detail/win32_api.hpp:1352:61: error: cannot convert ‘long int*’ to ‘LPLONG {aka int*}’ for argument ‘3’ to ‘WINBOOL ReleaseSemaphore(HANDLE, LONG, LPLONG)’ 
{ return ReleaseSemaphore(handle, release_count, prev_count); } 
^ 

전체 출력은 here입니다

./bootstrap.sh --with-python-root=/cygdrive/c/Python27/ 

는 다음을 통해 컴파일 : 나는 다음과 같은 명령을 사용하여 부트 스트랩하고

.

주의 : Google에서 처음으로 텍스트 호스트를 사용했을 때 다시 업로드 할 수있는 경우에만 사용했습니다.

편집 : 나는 boost.1.64.0을 사용하고

, 웹 사이트에서 최신 버전입니다 : 내 부스트 버전을 놓쳤다.

+0

Cygwin을 Windows 프로그램과 혼합하고 있습니까? 작동하지 않을 수도 있습니다. – matzeri

답변

0

분명히 Boost.Interprocess는 Cygwin을 지원하지 않습니다. b2 명령 줄에 define=BOOST_LOG_WITHOUT_IPC을 추가하여 Boost.Log의 관련 기능을 비활성화 할 수 있습니다.

관련 문제