2017-04-22 1 views
0

J'essaie d'utiliser la bibliothèque de journalisation de boost, mais j'ai du mal à la compiler. Toutes les autres bibliothèques boost sont compilées correctement.Erreur de compilation dans le journal d'amplification avec cygwin win32_api.hpp

Je bootstrapping en utilisant la commande suivante:

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

ensuite la compilation via:

./b2 -j5 link=static 

Le bref résumé de la sortie est:

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); } 
^ 

La sortie complète est here . NB: Je viens d'utiliser le premier hébergeur de texte google, s'il y en a un recommandé, je peux le télécharger à nouveau.

EDIT: J'avais raté ma version Boost:

J'utilise boost.1.64.0, qui est la dernière version sur le site.

+0

Mélangez-vous cygwin avec le programme Windows? Il est peu probable de travailler. – matzeri

Répondre

0

Apparemment, Boost.Interprocess ne prend pas en charge Cygwin. Vous pouvez désactiver la fonctionnalité pertinente de Boost.Log en ajoutant define=BOOST_LOG_WITHOUT_IPC à votre ligne de commande b2.