Build failure under Mac OS X 10.3.9
|Assignee:||Andreas Huggel||% Done:|
The build fails with the following error:
g++ -O2 -Wall -Wcast-align -Wpointer-arith -Wformat-security -Wmissing-format-attribute -Woverloaded-virtual -W -I. -I/usr/local/include -I/usr/local/include -DEXV_LOCALEDIR=\"/usr/local/share/locale\" -I../xmpsdk/include -c convert.cpp -fno-common -DPIC -o .libs/convert.o
convert.cpp: In member function `void Exiv2::Converter::cnvXmpValueToIptc(const
char*, const char*)':
convert.cpp:1082: error: type specifier omitted for parameter
convert.cpp:1082: error: parse error before numeric constant
convert.cpp:1083: error: request for member `setValue' in `Exiv2::id(...)',
which is of non-aggregate type `Exiv2::Iptcdatum ()(...)'
convert.cpp:1084: error: no matching function for call to `Exiv2::IptcData::add
iptc.hpp:242: error: candidates are: int Exiv2::IptcData::add(const
iptc.hpp:249: error: int Exiv2::IptcData::add(const
make: * [convert.o] Error 1
make: * [all] Error 2
Build of version 0.14 was successful under this OS version.
#2 Updated by Andreas Huggel about 10 years ago
Attachment firsttry.patch is an attempt to fix the problem. I have had a very similar error message here earlier (on Linux/g++-4.3) and it went away when I used a 0 pointer argument in the Iptcdatum constructor on line 1082.
So if firsttry.patch doesn't help, please also try s/key/key, 0/ on that line.
But I still do not understand what the compiler is trying to do here and why it doesn't get the Iptcdatum and IptcKey constructors right.
#5 Updated by Andreas Huggel about 10 years ago
~993: Apparently, this is "C++'s most vexing parse":