Probleme avec code::blocks et dev c++

Résolu/Fermé
bisho Messages postés 82 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 24 avril 2013 - 3 mars 2009 à 13:34
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 3 mars 2009 à 16:29
Bonjour,

j'utilisais Dev-C++ pour suivre un tutoriel d'apprentissage du langage C et j'ai rencontrer un probleme avec les commandes random et randomize.

Le tuto précise que ces commandes sont dans la librairie stdlib.h qui est automatiquement incluse avec Dev C++

J'ai essayer de copier le code sur Code::blocks, meme probleme, il refuse de compiler.

Avec un troisieme compileur (Turbo C) le meme code fonctionne, mais je n'aime pas vraiment celui ci, etant en mode console.

quelqu'un sait il comment arranger le probleme, soit avec Code::blocks soit avec Dev C++ car je prèfererai utilisé l'un des deux et non pas Turbo C ?

Merci d'avance pour vos conseil,

Erreur Code::Blocks :

obj\Debug\main.o||In function `main':|
na\Mes documents\projet codeblocks\projet1\main.c|9|undefined reference to `_randomize'|
na\Mes documents\projet codeblocks\projet1\main.c|10|undefined reference to `_random'|
||=== Build finished: 2 errors, 0 warnings ===|


Erreur Dev C++ :

[Linker error] undefined reference to `random'
[Linker error] undefined reference to `randomize'
A voir également:

7 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
3 mars 2009 à 14:02
il inclu bien stdlib, mais il manque la liaison avec la librairie standard.
Je crois qu'il y a une option à cocher dans DevCpp, dans "option compilation"
0
bisho Messages postés 82 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 24 avril 2013 16
3 mars 2009 à 14:37
Tu parle a un très grand néophyte et donc je ne vois pas trop qu'est-ce que je dois chercher dans option du compilateur ^^

Si tu l'as sous la main, de petites précisions me serais grandements utiles.

Sinon j'ai regarder dans les différents stdlib.h (TC et DevC++) et ils sont differents, j'ai faire rechercher "random" et il apparais dans le stdlib de Turbo C et pas dans le stdlib de DevC++

Je veux pas trifouiller ces fichiers sans savoir ce que je fais, mais n'y a t il pas un moyen de combiner les deux, de copier ce qui est présent dans celui de Turbo C et de le copier dans le stdlib de DevC++ ? Quelque chose dans ce genre.

vu que certaines partie sont apparement commune, je peux pas utiliser les deux en meme temps, et donc j'ai pensé a copier ce qu'il me fallais depuis l'un dans l'autre mais je ne sais ni ou commencer ni ou m'arreter.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
3 mars 2009 à 15:40
Si tu veux faire du C sérieusement, il faudrait s'y mettre, c'est à dire compiler un peu en ligne de commande, comprendre comment ça fonctionne.
Les options sur lesquels tu peux agir :
Outils->option du compilateur
Une fenêtre s'ouvre, dans l'onglet "options", agir sur "compilateur C"->support de la norme ANSI oui/non
et sur "editeur de lien" ->"ne pas utiliser de bibliothèques standard" oui/non
après un petit tour dans stdlib, il me revient que random et randomize sont des fonction non standard de borland.
En C standard, donc sous DevCpp, il faut utiliser l'équivalent :
rand() et srand().
si ça t'embête, cré une fonction int random(int i){return rand(i);}
0
bisho Messages postés 82 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 24 avril 2013 16
3 mars 2009 à 15:54
ok, je comprend mieux.

Je compte bien m'y mettre sérieusement (quoi que si je continue a passer mon temps de travail a essayer d'analyser et de comprendre stdlib.h, je vais surement me faire virer) mais j'ai commencer hier et donc je n'y connais encore rien, je n'en avais jamais fait avant (connaissance vraiment à 0)

si rand() et srand() sont des équivalents de random et randomize, alors c'est bon, pas besoin de les redéfinir.

rand() = random ou randomize ? je vais les tester de toute facon, mais du coup il y a plein de commande qui risque d'etre differente, car mon tuto est censé etre fait avec Turbo C de Borland. Tu sais s'il existe beaucoup de commande spécifique à Borland ?


Sinon pour ton aide déja fournis, je te remercie, ca a été rapide et clair
0

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

Posez votre question
bisho Messages postés 82 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 24 avril 2013 16
3 mars 2009 à 16:13
elles fonctionnent differement je pense.

Le tuto indique:

randomize(); pour initialiser la fonction

et random(XX) ou XX est le maximum pour le nombre aléatoire

et rand et srand ne fonctionne pa comme ca puisque j'ai essayer de les remplacer et ca me met une erreur (too many arguments to function 'rand'
0
Medou05 Messages postés 4 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 3 mars 2009
3 mars 2009 à 16:20
bonsoir
je cherche comment laisser 2 chiffres apres la virgules de resultas de calcule, en Delphi par Ex: 10000.245152 devient 10000.24
merci d'avence
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
3 mars 2009 à 16:29
srand doit être égale à randomize
rand ne prend peu pas d'argument, je ne sais plus.
https://linux.die.net/man/3/rand
0