Boost logo

Boost Users :

Subject: Re: [Boost-users] exception mechanism of boost.regex conflicts with QTlib.
From: Pau Garcia i Quiles (pgquiles_at_[hidden])
Date: 2011-11-27 11:12:40


On Sun, Nov 27, 2011 at 6:13 AM, cat fa <boost.subscribing_at_[hidden]> wrote:

> My regex was built under gcc 4.6. The default gcc which qt implements is gcc
> 4.4. So gcc 4.4 cannot handle the exception from libs built under gcc 4.6.

It's not like that. Unfortunately, it's much more complex than that.

Depending on the MinGW flavor you download, it will use dwarf2 or sjlj
exception unwind. They are not compatible. One is faster but does not
work with VC++-compiled binaries (it won't catch the exceptions), the
other is slower but works with VC++-compiled binaries. They are both
just workarounds for the actual solution, which is a working
implementation of Microsoft's SEH.

That means if compile boost with gcc 4.4 sjlj and Qt with gcc 4.4
dwarf2, you will still see the problem. Same for 4.6. The current
solution is to use always the same exception-flavor, be it dwarf2
(faster) or sjlj (compatible with VC++). The latter is preferred these
days.

-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)

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