IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

time.h non reconnu en compilant avec gcc


Sujet :

Bibliothèques

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Points : 66
    Points
    66
    Par défaut time.h non reconnu en compilant avec gcc
    bonjour,

    Je cherche à compiler avec gcc une application qui tourne sous Unix et qui précédemment était compilée avec le compilo SUN. Le but étant ensuite de porter l'appli sous Linux. Pour des problèmes disons d'organisation, la plateforme Linux n'est pas encore opérationnelle donc je commence par cette étape.

    Lors de la compilation avec gcc j'ai un message du type :

    Compilation of CdDeliverer.cxx in progress ...
    src/CdDeliverer.cxx: In static member function `static void
    CdDeliverer::cleanDirectory(FtpWrapper*, const CR_string&, const
    CR_string&)':
    src/CdDeliverer.cxx:384: choosing `CR_boolean CR_boolean::operator||(int) const
    ' over `operator||'
    src/CdDeliverer.cxx:384: because worst conversion for the former is better
    than worst conversion for the latter
    src/CdDeliverer.cxx:384: choosing `CR_boolean CR_boolean::operator||(int) const
    ' over `operator||'
    src/CdDeliverer.cxx:384: because worst conversion for the former is better
    than worst conversion for the latter
    src/CdDeliverer.cxx: In member function `virtual int CdDeliverer::doJob(int,
    CR_string&)':
    src/CdDeliverer.cxx:697: `cftime' undeclared (first use this function)
    src/CdDeliverer.cxx:697: (Each undeclared identifier is reported only once for
    each function it appears in.)


    Il n'y a pas que l'erreur liée à cftime mais en ce qui concerne cette dernière, je pense que l'utilisation de #include <time.h> avec gcc ne fonctionne pas bien.
    Connaissez vous un équivalent de cette librairie ?

    merci d'avance,

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    Citation Envoyé par chris78
    Il n'y a pas que l'erreur liée à cftime mais en ce qui concerne cette dernière, je pense que l'utilisation de #include <time.h> avec gcc ne fonctionne pas bien.
    Connaissez vous un équivalent de cette librairie ?
    En c++, il faut include ctime (sans .h) et compiler avec g++, qui ce contente d'appeler gcc avec les bonnes options :
    Citation Envoyé par loufoque
    g++ c'est la même chose que gcc -x c++ -lstdc++ -lm

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Points : 66
    Points
    66
    Par défaut
    merci gege
    j'utilise la commande g++ pour compiler
    sinon j'ai déjà essayé d'enlever le .h de time.h et sans résultat
    en fait il me génère une erreur du type "No suche file or directory" sur le include de time
    ou peut être y a t il un chemin à préciser pour qu'il trouve time ?

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par chris78
    sinon j'ai déjà essayé d'enlever le .h de time.h et sans résultat
    en fait il me génère une erreur du type "No suche file or directory" sur le include de time
    Il faut inclure ctime

    Citation Envoyé par chris78
    ou peut être y a t il un chemin à préciser pour qu'il trouve time ?
    Normalement le chemin des en-têtes standard est connu (je ne sais pas comment) mais tu peux toujours essayer d'ajouter l'option -I suivie du chemin du dossier contenant les fichiers d'en-tête (man gcc pour plus d'info).

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Points : 66
    Points
    66
    Par défaut
    ok en ajoutant ctime je n'ai plus le no suche file mais par contre j'ai toujours l'erreur de départ !

    une autre idée sinon ?


    PS : je vais changer gcc qui est en version 3.2 pour upgrader un peu, sait t on jamais !!!

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par chris78
    ok en ajoutant ctime je n'ai plus le no suche file mais par contre j'ai toujours l'erreur de départ !

    une autre idée sinon ?


    PS : je vais changer gcc qui est en version 3.2 pour upgrader un peu, sait t on jamais !!!
    Je n'ai même pas pensé à regarder, mais cftime n'est pas standard, il est bien défini dans time.h mais sous certaines conditions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #if (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
    extern int cftime(char *, char *, const time_t *);
    extern int ascftime(char *, const char *, const struct tm *);
    extern long altzone;
    #endif
    Donc il faut ajouter :
    Au option de g++

    En espérant que ta plateforme de teste imlplémente cette fonction (sous Linux il n'y a pas de problème).

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Points : 66
    Points
    66
    Par défaut
    je vois que tu essaies vraiment de m'aider mais même en ajoutant ces options cela ne fonctionne pas. Pourtant j'y ai réellement cru !
    je travaille sous Solaris 9 pour le moment mais à terme ce sera Linux ! mais quand ??? cela peut être demain comme dans 15 jours.

    donc encore merci mais je cherche encore... j'ai pas encore fais l'upgrade de gcc... on ne sait jamais !

  8. #8
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par chris78
    je vois que tu essaies vraiment de m'aider mais même en ajoutant ces options cela ne fonctionne pas. Pourtant j'y ai réellement cru !
    je travaille sous Solaris 9 pour le moment mais à terme ce sera Linux ! mais quand ??? cela peut être demain comme dans 15 jours.

    donc encore merci mais je cherche encore... j'ai pas encore fais l'upgrade de gcc... on ne sait jamais !
    J'ai déjà ce problème et j'ai cherché très longtemps
    J'ai portant piché dans les sources d'OpenSolaris (sans le faire exprès )

    Dernière chance mes les mains dans le camboui : regarde le contenu de ctime; qui devrait simplement include time.h, puis le contenu de time.h pour voir si cftime existe bien et les conditions de sa déclaration.

  9. #9
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Puisque cftime n'a rien de standard, ne peux-tu pas te rabattre sur un équivalent standard ? Ou une vrai bibliothèque portable qui sache gérer le temps et te fournir le service que tu recherches ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Points : 66
    Points
    66
    Par défaut
    oui un équivalent me semble une bonne idée
    je n'en connais malheureusement pas et je ne connais pas du tout le service désiré mais à première vue c'est de formater l'heure courante dans un format donné (%d%H%M%S : jour/heure/mn/sec je pense)
    y'a une librairie plus portable qui effectue ce travail ?

  11. #11
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    strftime dans time.h/ctime ?
    Dans une documentation de référence, comme celle de dinkumware, celle dans ton man, ... tu trouveras toutes les fonctions de time.h

    Autrement, il existe des bibliothèques portables (comme boost.date_time) qui cherchent à simplifier les manipulations de dates.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Points : 66
    Points
    66
    Par défaut
    désolé je n'etais pas là vendredi !

    bon j'essaie pas mal de choses dont les solutions citées mais rien n'y fait
    mais comme on m'a donné une tâche à faire en parallèle, je n'ai pas le temps de creuser
    je vous tiendrais informer si j'arrive à quelque chose, ça pourra peut être aider quelqu'un !!!

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Points : 66
    Points
    66
    Par défaut
    Suite et fin...

    le problème vient bien d'un incompatibilité car il semblerait que cftime et ascftime ne soient pas conseillées (en tous cas sous Linux)
    bref il faut utiliser strftime qui fait la même chose ou presque !

    voici mon code après mlodification :

    AVANT MODIFICATION :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            #include <time.h>
     
            ........
     
    	char datetime[255];
    	time_t current = time(NULL);
    	cftime(datetime,"%d%H%M%S",&current);
    APRES MODIFICATION :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	#include <ctime>
     
            ........
     
            char datetime[255];
    	time_t current = time(NULL);
    	struct tm *today = localtime(&current);
    	strftime(datetime, 255, "%d%H%M%S", today);
    en esperant que cela marche correctement
    seul le code retour est different mais il n'est pas utilisé dans mon cas...
    voilà, cela en aidera peut être certains !

    @+ et merci à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/04/2006, 19h02
  2. [débutant]compiler avec gcc sous linux
    Par Ickou dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 10/03/2006, 17h27
  3. compilation avec gcc: erreur inhabituelle
    Par artatum dans le forum C
    Réponses: 4
    Dernier message: 12/10/2005, 17h13
  4. Problème de compilation avec gcc
    Par Niktou dans le forum Linux
    Réponses: 9
    Dernier message: 27/09/2005, 15h18
  5. compilation avec gcc : erreurs bizard !!!
    Par CodeurNé dans le forum C
    Réponses: 2
    Dernier message: 23/09/2005, 18h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo