使用cygwin win32_api.hpp

时间:2017-04-22 13:08:41

标签: 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/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

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

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

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

1 个答案:

答案 0 :(得分:0)

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