exrmaketiled/Image.h causes an error under gcc version 4.1.0. Patch to follow.
Created attachment 87336 [details, diff] Patch to fix Openexr on GCC4
Looks fine to me
Uh can I ask what the error is? I built openexr on two systems without problems, with GCC 4.1.x
(In reply to comment #3) > Uh can I ask what the error is? I built openexr on two systems without > problems, with GCC 4.1.x > ./Image.h:59: error: expected `)' before '&' token ./Image.h:64: error: ISO C++ forbids declaration of 'Image' with no type ./Image.h:64: error: expected ';' before '&' token ./Image.h:65: error: expected `;' before 'const' ./Image.h:65: error: ISO C++ forbids declaration of 'Image' with no type ./Image.h:65: error: expected ';' before '&' token ./Image.h:67: error: expected `;' before 'private' ./Image.h:71: error: ISO C++ forbids declaration of 'Image' with no type ./Image.h:71: error: expected ';' before '&' token ./Image.h:80: error: expected `)' before '&' token ./Image.h:143: error: no 'TypedImageChannel<T>::TypedImageChannel(Image&, int, int)' member function declared in class 'TypedImageChannel<T>' ./Image.h:143: error: template definition of non-template 'TypedImageChannel<T>::TypedImageChannel(Image&, int, int)' ./Image.h: In member function 'virtual Imf::Slice TypedImageChannel<T>::slice() const': ./Image.h:186: error: there are no arguments to 'image' that depend on a template parameter, so a declaration of 'image' must be available ./Image.h:186: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) Image.cpp: At global scope: Image.cpp:49: error: prototype for 'ImageChannel::ImageChannel(Image&)' does not match any in class 'ImageChannel' ./Image.h:54: error: candidates are: ImageChannel::ImageChannel(const ImageChannel&) ./Image.h:54: error: ImageChannel::ImageChannel() Image.cpp: In constructor 'ImageChannel::ImageChannel(Image&)': Image.cpp:49: error: class 'ImageChannel' does not have any field named '_image' Image.cpp: In member function 'void Image::addChannel(const std::string&, Imf::PixelType)': Image.cpp:96: error: no matching function for call to 'TypedImageChannel<half>::TypedImageChannel(Image&, int, int)' ./Image.h:77: note: candidates are: TypedImageChannel<half>::TypedImageChannel() ./Image.h:77: note: TypedImageChannel<half>::TypedImageChannel(const TypedImageChannel<half>&) Image.cpp:100: error: no matching function for call to 'TypedImageChannel<float>::TypedImageChannel(Image&, int, int)' ./Image.h:77: note: candidates are: TypedImageChannel<float>::TypedImageChannel() ./Image.h:77: note: TypedImageChannel<float>::TypedImageChannel(const TypedImageChannel<float>&) Image.cpp:104: error: no matching function for call to 'TypedImageChannel<unsigned int>::TypedImageChannel(Image&, int, int)' ./Image.h:77: note: candidates are: TypedImageChannel<unsigned int>::TypedImageChannel() ./Image.h:77: note: TypedImageChannel<unsigned int>::TypedImageChannel(const TypedImageChannel<unsigned int>&) make[1]: *** [Image.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/openexr-1.2.2/work/OpenEXR-1.2.2/exrmaketiled' make: *** [all-recursive] Error 1
Okay sorry I should have looked at the version before. 1.2.2-r2 has already the same exact patch, I don't think it's the case to patch also 1.2.2 for now.
(In reply to comment #5) > Okay sorry I should have looked at the version before. 1.2.2-r2 has already the > same exact patch, I don't think it's the case to patch also 1.2.2 for now. > Ah, ok. I should have checked that too. Thanks