Thread: [K3d-development] Compile issues with g++ 4.4
Brought to you by:
barche
From: Denis <de...@po...> - 2009-03-11 09:46:58
Attachments:
build_error.txt
|
I'm having issues compiling 0.7.10 (as well as svn trunk) with g++ 4.4, related to boost structures: /usr/include/boost/mpl/at.hpp:42: error: ‘template<class Sequence, long int N> struct boost::mpl::at_c’ is not a function, /home/denis/sandbox/svn/k3d/k3dsdk/gil/boost/gil/color_base.hpp:369: error: conflict with ‘template<int K, class E, class L, int N> typename boost::add_reference<E>::type boost::gil::at_c(boost::gil::detail::homogeneous_color_base<E, L, N>&)’ /home/denis/sandbox/svn/k3d/k3dsdk/gil/boost/gil/color_base_algorithm.hpp:81: error: in call to ‘at_c’ (full error log attached) I need some help decoding the complexity here, not being familiar with boost templatized madness... This is with boost 1.37.0 |
From: Timothy M. S. <ts...@k-...> - 2009-03-12 06:11:08
Attachments:
tshead.vcf
|
Denis wrote: > I'm having issues compiling 0.7.10 (as well as svn trunk) with g++ 4.4, > related to boost structures: > > This is with boost 1.37.0 Denis: We have been using our own copy of the GIL sources, which is located in k3dsdk/gil. This was because we started using GIL at a time when it had been accepted into boost as of boost 1.35, but that version of boost was not widely available. Most likely there is some interaction going on here between your compiler version and/or some other boost library that GIL depends on. A couple of things come to mind: * Most expediently, you can try copying the GIL from your boost 1.37 into the k3dsdk/gil directory, maintaining the directory structure, and let us know if that fixes the problem. It's a header-only library, so no other changes should be necessary. * Assuming that that does it, we should probably consider transitioning away from maintaining our own GIL source tree, which was always a temporary solution. Cheers, Tim |
From: Denis L. <de...@po...> - 2009-03-12 08:48:31
|
Timothy M. Shead wrote: > Denis wrote: >> I'm having issues compiling 0.7.10 (as well as svn trunk) with g++ 4.4, >> related to boost structures: >> >> This is with boost 1.37.0 > > Denis: > > We have been using our own copy of the GIL sources, which is located in > k3dsdk/gil. This was because we started using GIL at a time when it had > been accepted into boost as of boost 1.35, but that version of boost was > not widely available. Most likely there is some interaction going on > here between your compiler version and/or some other boost library that > GIL depends on. A couple of things come to mind: > > * Most expediently, you can try copying the GIL from your boost 1.37 > into the k3dsdk/gil directory, maintaining the directory structure, and > let us know if that fixes the problem. It's a header-only library, so > no other changes should be necessary. > > * Assuming that that does it, we should probably consider transitioning > away from maintaining our own GIL source tree, which was always a > temporary solution. Right, I modified the source tree to include the official boost library directly, and only kept the handful of K3D gil extensions... I had little problem in setting that up. But the problem remains. I don't think this is a boost setup problem, because utility_gl.o compiles fine if I use a different compiler (i.e. i replace g++ 4.4 with g++ 3.4 for example), so this is really a GCC 4.4 incompatiblity issue... |
From: Bart J. <bar...@li...> - 2009-03-12 21:59:32
|
On Thu, Mar 12, 2009 at 9:48 AM, Denis Leroy <de...@po...> wrote: > But the problem remains. I don't think this is a boost setup problem, > because utility_gl.o compiles fine if I use a different compiler (i.e. i > replace g++ 4.4 with g++ 3.4 for example), so this is really a GCC 4.4 > incompatiblity issue... Hi all, Today I compiled K-3D with boost 1.38 on MSYS, using GCC 4.3. So I guess the problem is indeed a compiler issue. I don't have a GCC 4.4 setup to test this myself. Cheers, -- Bart |
From: Denis L. <de...@po...> - 2009-03-23 15:12:21
|
To follow up on this, we found a couple of spots in the boost code where full namespace qualification was required (see patch below). So the good news is that Fedora 11 Beta will have K-3d 0.7.11.0 available. +++ k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/color_base_algorithm.hpp 2009-03-22 22:33:45.000000000 +0100 @@ -70,7 +70,7 @@ - static type get(ColorBase& cb) { return at_c<semantic_index>(cb); } + static type get(ColorBase& cb) { return boost::gil::at_c<semantic_index>(cb); } }; @@ -78,7 +78,7 @@ - static type get(const ColorBase& cb) { return at_c<semantic_index>(cb); } + static type get(const ColorBase& cb) { return boost::gil::at_c<semantic_index>(cb); } }; |