我正在尝试使用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,这是网站上的最新版本。
答案 0 :(得分:0)
显然,Boost.Interprocess不支持Cygwin。您可以通过将define=BOOST_LOG_WITHOUT_IPC
添加到b2
命令行来禁用Boost.Log的相关功能。