Kann es sein, dass die sleep() Funktion im MinGW nicht vorhanden ist. Weder in <windows.h> bzw. <dos.h> ist die Funktion enthalten. Kennt jemand von euch das Problem bzw. eine einfache Alternative ???
" Probier's doch mal mit #include <unistd.h> " Geht leider auch nicht :-(
Benutze Sleep(millisekunden). Das ist in windows.h enthalten. Du kannst dir ein #define sleep(x) Sleep((x)) machen, wenn du die Source nicht grossflächig ändern willst, Checke unbedingt die Argumente des sleep, ob es Sekunden (POSIX sleep) oder Millisekunden (Windows Sleep) sind. Ggf. brauchst du einen Korrekturfaktor: #define sleep(x) Sleep((x)*1000)
Wer meckert denn, der Compiler oder der Linker? Poste mal Dein Makefile!
Hier die Fehlermeldung : ------------- Build: Debug in WriteBarcode --------------- Compiling: main.cpp J:\Barcode_Produktion\Barcode_Write\WriteBarcode\main.cpp: In function `int main(int, char**)': J:\Barcode_Produktion\Barcode_Write\WriteBarcode\main.cpp:159: error: `sleep' was not declared in this scope J:\Barcode_Produktion\Barcode_Write\WriteBarcode\main.cpp:159: warning: unused variable 'sleep' Process terminated with status 1 (0 minutes, 1 seconds) 1 errors, 1 warnings Mit <windows.h> und sleep(1000) (für 100ms). Bzgl. eine nicht funktionierenden sleep-Fkt in MinGW habe ich bereits unter Google schon etliche Hinweise gelesen. Doch nirgends stand etwas eindeutiges darüber dass es generell nicht geht.
Aufgrund der Fehlermeldungen würde ich mal sagen, dass da was Grundlegendes falsch ist "unused variable 'sleep'". Achja und wie bereits gesagt wurde, die Funktion wird mit großem "S" geschrieben. Sofern die windows.h eingebunden ist sollte es klappen. Hab schon zig Anwendungen damit gemacht. Ansonsten bitte deinen Quellcode posten.
Ob mit s bzw. S wird beides nicht akzeptiert. Windows.h ist auch eingebunden. Ich werde nun einmal den Compiler-Wechseln (Borland 5.5). Wie schon zuvor gesagt, sind im Netz diverse Hinweise zu finden, dass die Sleep-Fkt u.U. mit dem MinGW nicht richtig bzw. gar nicht funktioniert. Daher habe ich hier mal kurz angefragt ob schon jemand die Funktion mit MinGW benutzt hat und diesbzgl. seine Erfahrung gemacht hat.
Die windows.h bindet die winbase.h ein. Darin steht:
1 | WINBASEAPI void WINAPI Sleep(DWORD); |
^^Das ist aus meinem MinGW-Compiler. Würde daher gerne mal deinen Quellcode sehen um zu gucken was bei mir kommt.
sleeptest.c -----------
1 | #include <windows.h> |
2 | |
3 | int main (int argc, char**argv) |
4 | { sleep (1000); printf("READY\n"); |
5 | return 0; |
6 | }
|
Makefile: --------- CFLAGS=-Wall sltest: sltest.c gcc -o sltest sltest.c -lws2_32 Aktivierung: ------------ make ./sltest Das tut es bei mir, nur mit dem Unterschied zu Unix, dass die Zeitangabe als Millisekunden genommen wird.
Habe vergessen zu sagen, dass ich die Kombination MinGW / Msys benutze.
Problem gelöst :-) Nachdem ich CodeClocks neu installert habe funktioniert auch die Sleep()-Fkt. aus <windows.h>
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.