Pagina 1 di 1

Salck 12 & errore compilazione [RISOLTO]

Inviato: lun 20 ago 2007, 18:02
da tgmx
Ciao Ragazzi,

ho aggiornato la Slack alla 12 e tutto è andato bene solo che oggi ho provato a compilare un'applicazione QT3 che compilava correttamente con la Slack 11 e adesso non compila più.
Siccome ho le due Slack su due partizioni ho riprovato a compilare con la 11 e funziona.

L'errore in compilazione è:
/usr/lib/qt/include/private/qucom_p.h:142: error: duplicate 'unsigned'
/usr/lib/qt/include/private/qucom_p.h:142: error: multiple types in one declaration
/usr/lib/qt/include/private/qucom_p.h:142: error: declaration does not declare anything
/usr/lib/qt/include/private/qucom_p.h:143: error: duplicate 'unsigned'
/usr/lib/qt/include/private/qucom_p.h:143: error: duplicate 'short'
/usr/lib/qt/include/private/qucom_p.h:143: error: declaration does not declare anything


Quindi non sembra un mio errore dato che quel file non so neanche a che serve.

Secondo voi quale degli aggiornamenti avvenuti nella Slack 12 può causare questo errore. Se provo a installare gcc della 11 che problemi posso avere?

GRAZIE.

Inviato: lun 20 ago 2007, 21:04
da michele.p
...il problema potrebbe (notare il condizionale) dipendere dalla versione del compilatore Gcc-Gcc++.

Che cosa stai cercando di compilare?

Bye

Inviato: lun 20 ago 2007, 21:26
da tgmx
...confermo, ho provato ad installare sulla Slack 12 il gcc della 11 e compila normalmente quindi il problema dovrebbe essere della versione di gcc.

Però è assurdo che aggiornando gcc, un programma fatto in QT3 non compila più.

A sto punto credo vada segnalato a Trolltech come bug.

Il programma che devo compilare è un'applicazione grafica fatta con le QT3, niente di particolare. Inoltre l'errore in compilazione non è sul codice della mia applicazione ma su un header delle QT.

Inviato: mar 21 ago 2007, 12:20
da tgmx
Forse ho trovato la causa del problema ma non ancora la soluzione:

nella mia applicazione in QT, includo un header unnamed.h:

Codice: Seleziona tutto

#ifndef UNNAMED_H
#define UNNAMED_H

#define uc unsigned char
#define us unsigned short
#define u32 unsigned int

#endif
e sembra sia proprio quel uc e us ad andare in conflitto con uc e us che si trova in un file di libreria delle qt:
/usr/lib/qt/include/private/qucom_p.h:142
da cui l'errore riportato in un post precedente.

Quindi probabilmente la nuova versione di gcc vede questo come un errore mentre la precedente no.

Ma un define come quello non dovrebbe essere locale ai file che includono l'header e basta?

Inviato: mar 21 ago 2007, 15:07
da tgmx
Ho risolto togliendo i define incriminati dal mio progetto, sembra che il nuovo gcc sia molto più esigente in termini di sintassi....

;)