[Kylix] Une erreur dans time.h ?????

razmott -  
 kmf -
Salut !
J'ai récement installé Kylix3 OE sur une mandrake 10.1 Community.
Grâce à l'aide de ce forum, j'ai réussis à faire fonctionner Kylix3 pour delphi.
En effet, Kylix 3 pour c++ me demandait une bibliotèque du nom de libstdc++. Je l'ai installé et, maintenant Kylix3 pour c++ peut être lancé sans message d'erreur. Par contre, en compilant un programme, quelqu'il soit, Kylix m'avertit d'une erreur de syntaxe dans "time.h".
Qu'est-ce que ça veut dire ?
Merci d'avance pour les réponses !
@+

6 réponses

saga
 
Salut

Alors c'est peut etre une erreur dans ce fichier (g eu une erreur similaire pour un autre truc).
Il(kylix) dervait te donner la ligne ou ca foire.Affiche la ici et je verrai...enfin si j'y arrive mais bon d'autres pourront intervenir.
Perso c t juste un saut de ligne qui rendait le code incompréhensible lors de la compilation.

; )
0
razmott
 
Salut saga !
Juste avant d'envoyer les lignes, je previens un qu'il y en a plusieurs et deux que c'est des déclarations.
A tout de suite !
0
razmott
 
Salut !
Je présente la liste d'erreurs que me sort Kylix :
[C++ Erreur] time.h(60): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(63): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(79): E2238 Déclaration multiple pour '__END_NAMESPACE_STD'
[C++ Erreur] time.h(63): E2344 Déclaration plus récente de '__END_NAMESPACE_STD'
[C++ Erreur] time.h(79): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(131): E2238 Déclaration multiple pour '__BEGIN_NAMESPACE_STD'
[C++ Erreur] time.h(60): E2344 Déclaration plus récente de '__BEGIN_NAMESPACE_STD'
[C++ Erreur] time.h(131): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(153): E2238 Déclaration multiple pour '__END_NAMESPACE_STD'
[C++ Erreur] time.h(79): E2344 Déclaration plus récente de '__END_NAMESPACE_STD'
[C++ Erreur] time.h(153): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(181): E2238 Déclaration multiple pour '__BEGIN_NAMESPACE_STD'
[C++ Erreur] time.h(131): E2344 Déclaration plus récente de '__BEGIN_NAMESPACE_STD'
[C++ Erreur] time.h(181): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(184): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(187): E2293 ) attendue
[C++ Erreur] time.h(191): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(226): E2238 Déclaration multiple pour '__END_NAMESPACE_STD'
[C++ Erreur] time.h(153): E2344 Déclaration plus récente de '__END_NAMESPACE_STD'
[C++ Erreur] time.h(226): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(233): E2293 ) attendue
[C++ Erreur] time.h(239): E2238 Déclaration multiple pour '__END_NAMESPACE_STD'
[C++ Erreur] time.h(226): E2344 Déclaration plus récente de '__END_NAMESPACE_STD'
[C++ Erreur] time.h(239): E2141 Erreur de syntaxe de déclaration
[C++ Erreur] time.h(244): E2293 ) attendue
[C++ Erreur] time.h(244): E2228 Trop de messages d'erreur ou d'avertissements

Donc, voilà, si quelqu'un peut m'aider...
Merci pour vos réponses @+
0
razmott
 
PS : J'ai pas posté time.h parce que 400 et quelques lignes, bof.
@+
0
razmott
 
C'est sympa quand il ya des réponses.
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Manu
 
Oui,bien sûr, mais pour cela il faut que tu postes les lignes en cause dans times.h Fais nous un extrait des lignes 50 à 60.

Manu
0
razmott
 
Salut !
les lignes 50 à 60 ??????????????
je comprends pas pourquoi mais bon.
je les poste le plus vite possible (l'ordi sous linux n'est pas connecté à internet).
Je pose au passage la question :
est-ce que time.h fait parti de libstdc++ ?
Merci pour les réponses !
@+
0
kmf
 
est-ce que time.h fait parti de libstdc++ ?

Non, ca fait partie de glibc, c'est la bibliotheque standard dans tout systeme linux (et aussi dans tout systeme unix ou ca s'appelle plutot libc parceque ca ne vient pas de GNU comme pour linux). Tout programe compile de facon dynamique depend de cette bibliotheque.

Par exemple si tu tapes:
ldd /usr/bin/gcc

tu obtiens:
libc.so.6 => /lib/libc.so.6 (0x40028000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

ce qui montre que le programe "gcc" depend de deux bibliotheques: libc.so.6 et ld-linux.so.2, les deux appartenant au paquet de glibc.

En general avec la commande "ldd <programe>" tu peux voir les dependances de tout programe linux en fonction de ses bibliotheques. Si tu fais ca avec un programe graphique de KDE ou comme mozilla il y a plus de 10-20 bibliotheques!

D'ailleur si on efface par accident le lien ou fichier libc.so.6 le systeme Linux est casse et ca d'une facon extrement grave, nettement plus grave si on efface l'image du noyau linux. Dans les deux cas le systeme ne boot plus mais si on ``n'efface que le noyau'' on peut toujours booter avec une disquette de boot. Pour libc il faut utiliser un cd de boot en mode rescue pour le remettre.


Le fichier "time.h" se trouve normalement dans le repertoire /usr/include/ mais il y en a aussi d'autre fichiers avec le meme nom mais dans /usr/include/sys/ et dans /usr/include/linux/. Cependant ces fichiers ont autres significations (mais ils sont tous relies d'une facon ou d'une autre).


Moi j'ai souvent eu un probleme de compatibilite avec le "time.h" quand j'ai voulu compiler de paquets source, notamment quand il s'agit de vieux paquets. C'est presque un grand classique. Il peut aussi y avoir de problemes si on souhaite porter un programe C prevu pour Sun, Solaris ou HP vers Linux (ou a l'inverse).
0