[C/C++] 'usleep' was not declared
Résolu
FoX
-
loupius Messages postés 789 Statut Membre -
loupius Messages postés 789 Statut Membre -
Bonjour,
Après maintes recherches, je bloque sur une chose:
J'ai fais un programme il y a quelques temps sous Linux que j'aimerais reprendre sous windows, or Code::Blocks me trouve une erreur de type: 'usleep' was not declared in this scope.
Voilà le code, si cela peut vous aider:
J'ai tenté de mettre l'include <windows.h> en utilisant la fonction Sleep(), mais il me sort de nouvelles erreurs:
Je pense que là il n'arrive pas à lire le "f_video.h" ?
f_video.h
Même en incluant cette bibli dans les includes de C::B, cela n'y change rien.
Cela fait vraiment longtemps que je n'ai pas touché du C ... et je me sens un peu largué.
Merci d'avance pour votre aide,
Après maintes recherches, je bloque sur une chose:
J'ai fais un programme il y a quelques temps sous Linux que j'aimerais reprendre sous windows, or Code::Blocks me trouve une erreur de type: 'usleep' was not declared in this scope.
Voilà le code, si cela peut vous aider:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "f_video.h"
int main(void){
unsigned int X, Y; /* Declaration des variables de coordonnées */
signed int dX, dY; /* Delta X et Delta Y, pour le déplacement de la balle */
char ball; /* Variable de la balle */
ball = 'O'; /* Code ASCII de O */
srand(time(NULL)); /* Définie un temps nul */
Clrscr(); /* Efface le contenu de l'écran */
/* Valeur aléatoire prise par X et Y */
X = 1+(int) ((80.0*rand())/(RAND_MAX+1.0));
Y = 1+(int) ((24.0*rand())/(RAND_MAX+1.0));
/* Valeur aléatoire prise par la dérivée de X et de Y */
dX = 1+(int) ((10.0*rand())/(RAND_MAX+1.0));
if (dX >= 5) {
dX = 1;
} else {
dX = -1;
}
dY = 1+(int) ((10.0*rand())/(RAND_MAX+1.0));
if (dY >= 5) {
dY = 1;
} else {
dY = -1;
}
/* La balle doit partir de la valeur aléatoire */
while (1) {
Gotoxy(X,Y); /* Déplace le curseur en X et en Y */
printf("%c", ball);
fflush(stdout); /* Forcer l'affichage */
Gotoxy(X,Y);
printf(" "); /* Affiche un espace remplaçant l'ancien caractère */
if (X == 1) {
dX = 1;
}
if (X == 80) {
dX = -1;
}
if (Y == 1) {
dY = 1;
}
if (Y == 24) {
dY = -1;
}
X = X + dX;
Y = Y + dY;
usleep(500000);
}
return 0;
}
J'ai tenté de mettre l'include <windows.h> en utilisant la fonction Sleep(), mais il me sort de nouvelles erreurs:
D:\Dev\Cours - Info Iris\PremierC\Exercice11\ball.o:ball.c:(.text+0x43)||undefined reference to 'Clrscr()'| D:\Dev\Cours - Info Iris\PremierC\Exercice11\ball.o:ball.c:(.text+0x16d)||undefined reference to 'Gotoxy(int, int)'| D:\Dev\Cours - Info Iris\PremierC\Exercice11\ball.o:ball.c:(.text+0x1a3)||undefined reference to 'Gotoxy(int, int)'| ||=== Build finished: 3 errors, 0 warnings ===|
Je pense que là il n'arrive pas à lire le "f_video.h" ?
f_video.h
void Clrscr(); //efface le contenu de l'ecran void Gotoxy(int,int); // deplace le curseur en x et y void f_video_N(); // remet le mode video en normal void f_video_I(); // place la video en mode inverse
Même en incluant cette bibli dans les includes de C::B, cela n'y change rien.
Cela fait vraiment longtemps que je n'ai pas touché du C ... et je me sens un peu largué.
Merci d'avance pour votre aide,
3 réponses
Essaye de faire ca (sans garantie...) :
#include <unistd.h>
Mais c'est pratiquement sur un probleme de bibliothèque non importé ...
Tiens nous au courant si c'est ca !
#include <unistd.h>
Mais c'est pratiquement sur un probleme de bibliothèque non importé ...
Tiens nous au courant si c'est ca !