Erreur "basic_string"
Fermé
lgslgs
-
25 févr. 2019 à 19:55
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 27 févr. 2019 à 17:52
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 27 févr. 2019 à 17:52
A voir également:
- Erreur "basic_string"
- Erreur 1004 vba ✓ - Forum VB / VBA
- Erreur 1000 france tv - Forum MacOS
- Youtube une erreur s'est produite ✓ - Forum YouTube
- Free erreur 38 ✓ - Forum Mobile
- Erreur 80072efe ✓ - Forum Windows 7
1 réponse
[Dal]
Messages postés
6057
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
17 mars 2023
1 043
Modifié le 26 févr. 2019 à 11:12
Modifié le 26 févr. 2019 à 11:12
Bonjour lgslgs,
Les erreurs "undefined reference to ..." sont des erreurs du linker. A ce stade là, la compilation de ce que tu as demandé à compiler s'est bien passée, mais l'éditeur de liaison ne sait pas fabriquer un exécutable avec les fichiers objet produits par la compilation, car certains font référence à des objets qu'ils ne trouve pas.
Compiles tu bien fonction.cpp et est-ce que tu passes bien le fichier objet fonction.o au linker ?
En ligne de commande, sous Linux :
... pas d'erreur chez moi :-)
Sur un autre plan, tu ne devrais pas mettre l'initialisation du générateur de nombres pseudo aléatoires
Dal
Les erreurs "undefined reference to ..." sont des erreurs du linker. A ce stade là, la compilation de ce que tu as demandé à compiler s'est bien passée, mais l'éditeur de liaison ne sait pas fabriquer un exécutable avec les fichiers objet produits par la compilation, car certains font référence à des objets qu'ils ne trouve pas.
Compiles tu bien fonction.cpp et est-ce que tu passes bien le fichier objet fonction.o au linker ?
En ligne de commande, sous Linux :
$ g++ -Wall main.cpp fonction.cpp
$ ./a.out
evident
... pas d'erreur chez moi :-)
Sur un autre plan, tu ne devrais pas mettre l'initialisation du générateur de nombres pseudo aléatoires
srand(time(NULL));dans ta fonction
GetNombreAlleatoire()(note aussi que tu peux retirer un "L"), car si un jour tu décides d'appeler cette fonction plusieurs fois par seconde, elle renverra le même nombre (bien que cela ne soit pas spécifié par le standard du C,
time(NULL)renvoie la date actuelle en général sous la forme du nombre de secondes depuis le 1er Janvier 1970, donc avec une résolution d'une seconde).
Dal
26 févr. 2019 à 18:18
J'utilise un IDE (codeblocks) pour compiler. Et sur la fonction GetNombreAlleatoire(), ça marche correctement car il me renvoie differents nombres
Modifié le 27 févr. 2019 à 11:00
comment as-tu ajouté fonction.cpp et fonction.h à ton projet (il ne suffit pas de copier ces fichiers dans le répertoire où se trouve main.cpp, ou de faire ) ?
pour créer des nouveaux fichiers sources ou entêtes rattachés à ton projet Codeblocks, tu dois utiliser et choisir le type de fichier à ajouter au projet en partant d'un fichier vierge. Ou, si le fichier existe déjà et que tu ne veux pas le créer, tu peux l'ajouter en faisant ...
quand les fichiers sont rattachés au projet, les fichiers sources .cpp apparaissent dans l'arborescence de gauche dans un sous-dossier "Sources" avec main.cpp et les entêtes apparaissent dans un sous-dossier "Headers"
quelque chose similaire à cela (c'est un exemple C) :
Et sur la fonction GetNombreAlleatoire(), ça marche correctement car il me renvoie differents nombres
je suppose que tu considères qu'elle marche correctement parce que tu ne l'appelles pas plus d'une fois par seconde, comme j'ai essayé de te l'expliquer... essaye ceci :-)
for (int n = 0; n < 10; n++) { cout << "Nombre = " << GetNombreAlleatoire(1, 10) << endl; }"aléatoire" s'écrit avec un seul L
27 févr. 2019 à 17:38
C'est ce que j'ai
27 févr. 2019 à 17:43
27 févr. 2019 à 17:52