[desktop-discuss] Re: exiv2
Joerg Barfurth
Joerg.Barfurth at Sun.COM
Wed Oct 25 05:43:47 PDT 2006
Bernd Markgraf schrieb:
> On Tue, 2006-10-24 at 02:48 -0700, Damien Carbery wrote:
>> I've never tried but post a few bits of the error logs
> /opt/SUNWspro/bin/CC -g -I. -c basicio.cpp -KPIC -DPIC
> -o .libs/basicio.o
> "types.hpp", line 369: Error: An integer constant expression is required
> within the array subscript operator.
It is hard to say what causes this without seeing the array declaration
(and the declaration(s) of identifiers used for defining the dimensions).
> "basicio.cpp", line 85: Error: Formal argument 1 of type char* in call
> to munmap(char*, unsigned) is being passed unsigned char*.
Simplest solution: use a cast for the argument. Better yet, check where
that incompatibility comes from. Usually munmap takes a void*, evem on
Solaris. Do you have some extra POSIX-compatibility options on?
> "basicio.cpp", line 136: Error: Cannot assign
> std::auto_ptr<Exiv2::FileIo> to std::auto_ptr<Exiv2::BasicIo> without
> "std::auto_ptr<Exiv2::BasicIo>::operator=(const
> std::auto_ptr<Exiv2::BasicIo>&)";.
>
IIRC the default standard C++ library of the Sun C++ Compiler does not
support member templates (for backward compatibility reasons). The
conversion between different auto_ptr types requires this feature.
If your library needn't be compatible to the default Sun C++ ABI, you
can use the stlport library that comes with the compiler instead. It
should support this.
Otherwise if that line contains an auto_ptr assignment
foo = bar;
you can make that
foo = bar.release();
or
foo.reset( bar.release() );
which should work.
> I think line 85 is fixed. types.hpp and line 136 are giving me
> headaches...
>
>> or links to the sources and I'll give it a try.
> http://www.exiv2.org/download.html
>
>> Is exiv2 in Solaris?
> unfortunately not...
>
> maybe I should learn more about C++ 8-)
>
This is all I can say without taking the extra time to get the code :-o
HTH
- Jörg
More information about the desktop-discuss
mailing list