09-08-2020, 03:41 AM
Esteemed Colleagues:
Readers of this forum know that I recently built gimp 2.10
from source, and it was a nightmare, but I did it.
Now -- apparently in search of suffering, for there can be
no other reason for trying to do this -- I am trying to build
gimp 2.10 from source again, for another operating system
that shares the same hardware (my laptop is a multiboot
machine, I have several operating systems installed on it).
Because gimp 2.10 has many dependencies that are newer
than the versions available thru my package manager -- or,
in some cases, not available at all thru my package manager
-- I have had to build those dependencies from source. Only
one unbuilt dependency now remains on this operating system,
gegl.
I cannot build gegl on this operating system. That, of course,
is surely not true, what I mean to say is that I have not figured
out how to build gegl on this operating system. I turn to you,
esteemed colleagues, for help once again. This is the error
message that I get, time and time again, no matter what -f
arguments I have given to the compiler (and I have tried
many):
operations/external/exr-load.so.p/exr-load.cpp.o: In function import_exr(_GeglBuffer*, char const*, int)':
/usr/local/src/gegl-0.4.26/build/../operations/external/exr-load.cpp:506: undefined reference to Imf_2_1::Chromaticities::Chromaticities(Imath_2_2::Vec2<float> const&, Imath_2_2::Vec2<float> const&, Imath_2_2::Vec2<float> const&, Imath_2_2::Vec2<float> const&)'
This is at operation [481/750] of the ninja build.
Most likely this is a missing constructor that should have been
created from a template, but which the c++ compiler is failing
to create. But templates have been around for a long time
(31 years, in fact -- I remember when Bjarne Stroustrup
announced them in the Journal of Object-Oriented Programming;
but I digress) and I am using gcc 9.2.0. Surely by gcc 9.2.0
the g++ compiler has managed to get templates right. So
what is going on? I suppose I could build clang from scratch
and then try to build gegl with clang++, but I am certain that
this is not a compiler problem. And yet, this same version
of gegl has been successfully built before. So why can I not
build it on this operating system? What do I have to do?
As always, I thank you in advance for any and all replies.
jay at m5 dot chicago dot il dot us
Readers of this forum know that I recently built gimp 2.10
from source, and it was a nightmare, but I did it.
Now -- apparently in search of suffering, for there can be
no other reason for trying to do this -- I am trying to build
gimp 2.10 from source again, for another operating system
that shares the same hardware (my laptop is a multiboot
machine, I have several operating systems installed on it).
Because gimp 2.10 has many dependencies that are newer
than the versions available thru my package manager -- or,
in some cases, not available at all thru my package manager
-- I have had to build those dependencies from source. Only
one unbuilt dependency now remains on this operating system,
gegl.
I cannot build gegl on this operating system. That, of course,
is surely not true, what I mean to say is that I have not figured
out how to build gegl on this operating system. I turn to you,
esteemed colleagues, for help once again. This is the error
message that I get, time and time again, no matter what -f
arguments I have given to the compiler (and I have tried
many):
operations/external/exr-load.so.p/exr-load.cpp.o: In function import_exr(_GeglBuffer*, char const*, int)':
/usr/local/src/gegl-0.4.26/build/../operations/external/exr-load.cpp:506: undefined reference to Imf_2_1::Chromaticities::Chromaticities(Imath_2_2::Vec2<float> const&, Imath_2_2::Vec2<float> const&, Imath_2_2::Vec2<float> const&, Imath_2_2::Vec2<float> const&)'
This is at operation [481/750] of the ninja build.
Most likely this is a missing constructor that should have been
created from a template, but which the c++ compiler is failing
to create. But templates have been around for a long time
(31 years, in fact -- I remember when Bjarne Stroustrup
announced them in the Journal of Object-Oriented Programming;
but I digress) and I am using gcc 9.2.0. Surely by gcc 9.2.0
the g++ compiler has managed to get templates right. So
what is going on? I suppose I could build clang from scratch
and then try to build gegl with clang++, but I am certain that
this is not a compiler problem. And yet, this same version
of gegl has been successfully built before. So why can I not
build it on this operating system? What do I have to do?
As always, I thank you in advance for any and all replies.
jay at m5 dot chicago dot il dot us