C++ 使用cygwin win32_api.hpp编译boost日志时出错

C++ 使用cygwin win32_api.hpp编译boost日志时出错,c++,boost,cygwin,C++,Boost,Cygwin,我试图利用boost的日志库,但是我很难编译它。所有其他boost库都已正确编译 我正在使用以下命令进行引导: ./bootstrap.sh --with-python-root=/cygdrive/c/Python27/ 然后通过以下方式进行编译: ./b2 -j5 link=static 输出的简短摘要如下: gcc.compile.c++ bin.v2/libs/log/build/gcc-5.4.0/release/link-static/threading-multi/posix/

我试图利用boost的日志库,但是我很难编译它。所有其他boost库都已正确编译

我正在使用以下命令进行引导:

./bootstrap.sh --with-python-root=/cygdrive/c/Python27/
然后通过以下方式进行编译:

./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); }
^
完整输出为

注:我刚刚使用了谷歌出现的第一个文本主机,如果有推荐的,我可以重新上传

编辑:我错过了我的Boost版本:


我使用的是boost.1.64.0,这是网站上的最新版本。

显然,boost.Interprocess不支持Cygwin。您可以通过添加到
b2
命令行来禁用Boost.Log的相关功能。

您是否将cygwin与windows程序混合使用?这不太可能奏效。