2017-04-22 9 views
0

私はboostのロギングライブラリを利用しようとしていますが、コンパイルには苦労しています。他のすべてのブーストライブラリは正しくコンパイルされています。cygwinでのboostlogのコンパイルエラーwin32_api.hpp

私は、次のコマンドを使用してブートストラップしています:

./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

注:ちょうど私が再アップロードすることができます推奨されたものがあれば、私は最初のテキストホストgoogleを使用しました。

編集:私はboost.1.64.0を使用しています

、ウェブサイト上の最新バージョンである:私は私のブーストバージョンを逃していました。

+0

cygwinとwindowsプログラムを混在させていますか?それはうまくいかない。 – matzeri

答えて

0

明らかに、Boost.InterprocessはCygwinをサポートしていません。 Boost.Logの関連する機能を無効にするには、define=BOOST_LOG_WITHOUT_IPCb2コマンドラインに追加します。