Boost logo

Boost Users :

From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2008-07-09 03:27:39


<most_at_[hidden]> writes:

> I would like to use Boost.Thread in my 'winelib' application (a Linux
> executable that can also use Windows APIs via Wine). My application hosts,
> and shares threads with, 3rd party Windows DLL binaries. I've been told
> that to interact well those threads I must use the Windows threading APIs
> in my application. But by default Boost for Fedora (naturally) uses the
> pthread APIs.
>
> So I would need to use the Win32 variant of Boost.Thread. Any suggestions
> for how to use the Win32 thread APIs in Boost.Thread, but use the Linux
> variants of the rest of the libraries like Boost.Filesystem etc?

First off, put threadapi=win32 on your bjam command line. This will
ensure the libraries are named differently to the pthread ones, and
won't define the macros that force pthreads.

Next, ensure that _WIN32 is defined (e.g. add -D_WIN32 to <compileflags> for
your compiler in user-config.jam)

I wouldn't recommend trying to use some pthreads and some win32 builds
of boost libs in the same app: if they use any boost.thread facilities
then the definitions are different between the two APIs
(e.g. structure of boost::mutex).

If winegcc acts like gcc, try a line like this in your
user-config.jam:

using gcc : wine : /path/to/winegcc : <compile-flags>-D_WIN32 ;

Anthony

-- 
Anthony Williams            | Just Software Solutions Ltd
Custom Software Development | http://www.justsoftwaresolutions.co.uk
Registered in England, Company Number 5478976.
Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net