Rechercher : dans
Par :

Probleme avec code::blocks et dev c++

Dernière réponse le 3 mar 2009 à 16:29:54 bisho, le 3 mar 2009 à 13:34:28 
 Signaler ce message aux modérateurs

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'

Configuration: Windows XP
Firefox 3.0.6

Meilleures réponses pour « probleme avec code::blocks et dev c++ » dans :
Compiler un programme en C avec Dev C++ sous Vista VoirIl est très probable que vous ayez des problèmes lors de la compilation d'une source C sous Vista avec Dev C++. Solution rapide de secours: le compilateur g++ Voici une astuce pour Dev-Cpp : Aller dans "Outils" -> "Options du compilateur" puis...
Télécharger le contenu d'une page WEB distante VoirIntroduction Installation sous Linux (Ubuntu / Debian) Installation sous Windows Dev C++ Microsoft Visual C++ Petite exploration des fonctions de libcurl Un exemple: télécharger la page d'accueil de CCM Notre fichier source Compilation...

1

Char Snipeur, le 3 mar 2009 à 14:02:59

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" Salutation ! (il faut bien que vous compreniez que j'ai TOUJOURS raison)
Char Snipeur

Répondre à Char Snipeur

2

bisho, le 3 mar 2009 à 14:37:05

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.

Répondre à bisho

3

Char Snipeur, le 3 mar 2009 à 15:40:35

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);} Salutation ! (il faut bien que vous compreniez que j'ai TOUJOURS raison)
Char Snipeur

Répondre à Char Snipeur

4

bisho, le 3 mar 2009 à 15:54:09

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

Répondre à bisho

5

bisho, le 3 mar 2009 à 16:13:14

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'

Répondre à bisho

6

Medou05, le 3 mar 2009 à 16:20:02

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

Répondre à Medou05

7

 Char Snipeur, le 3 mar 2009 à 16:29:54

Srand doit être égale à randomize
rand ne prend peu pas d'argument, je ne sais plus.
http://linux.die.net/man/3/rand Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur