[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Addresses -> header import mess
From: |
Lars Sonchocky-Helldorf |
Subject: |
Re: Addresses -> header import mess |
Date: |
Tue, 3 Apr 2012 21:35:14 +0200 |
Am 03.04.2012 um 15:04 schrieb Riccardo Mottola:
> Hi,
>
> I have a strange problem I'm unabel to solve in the addresses framework (of
> Addresses as in GAP).
>
> ON most systems, it compiles fine and works. However on some, like my mingw
> with gcc3 and on Sebastian's OpenBSD, compilation will fail with:
>
> Making all for framework Addresses...
> Compiling file ADAddressBook.m ...
> In file included from ADEnvelopeAddressBook.h:8,
> from ADAddressBook.m:11:
> ./derived_src/Addresses/ADAddressBook.h:20: warning: duplicate interface
> declara
> tion for class `ADAddressBook'
> ./derived_src/Addresses/ADAddressBook.h:20: error: redefinition of `struct
> ADAdd
> ressBook'
> ./derived_src/Addresses/ADAddressBook.h:40: warning: duplicate interface
> declara
> tion for category `ADAddressBook(GroupAccess)'
> ./derived_src/Addresses/ADAddressBook.h:51: warning: duplicate interface
> declara
> tion for category `ADAddressBook(AddressesExtensions)'
> In file included from ADPerson.h:9,
> from ADAddressBook.m:13:
> ./derived_src/Addresses/ADRecord.h:14: warning: duplicate interface
> declaration
> for class `ADRecord'
> ./derived_src/Addresses/ADRecord.h:19: error: redefinition of `struct
> ADRecord'
> ./derived_src/Addresses/ADRecord.h:50: warning: duplicate interface
> declaration
> for category `ADRecord(Convenience)'
> ./derived_src/Addresses/ADRecord.h:56: warning: duplicate interface
> declaration
> for category `ADRecord(AddressesExtensions)'
> In file included from ADGroup.h:9,
> from ADAddressBook.m:14:
> ./derived_src/Addresses/ADPerson.h:24: warning: duplicate interface
> declaration
> for class `ADPerson'
> ./derived_src/Addresses/ADPerson.h:24: error: redefinition of `struct
> ADPerson'
> ./derived_src/Addresses/ADPerson.h:49: warning: duplicate interface
> declaration
> for category `ADPerson(AddressesExtensions)'
> make[4]: *** [obj/Addresses.obj/ADAddressBook.m.o] Error 1
> make[3]: *** [internal-framework-run-compile-submake] Error 2
> make[2]: *** [Addresses.all.framework.variables] Error 2
> make[1]: *** [internal-all] Error 2
> make: *** [internal-all] Error 2
>
> why? Shouldn't import protect from double inclusion? I did quite some clean
> up in the imports, but it did not help.
IIRC the import directive was a long time marked as "deprecated" for gcc
because it was somewhat broken until someone with enough brain in his head came
along and fixed it. IIRC again this was before 3.something and searching the
web for "gcc #import directive deprecated" lead me here:
http://www.gnu.org/software/gcc/gcc-3.4/changes.html
So #import was not working correctly up to GCC 3.4
>
> Riccardo
HTH,
Lars