Kann nicht Kompilieren von C++ - Code Mit Sleep() auf Linux - Welche Bibliothek Gehören?

Ich versuche zu kompilieren, einige-code, verwendet die Zeile:

Sleep(10);

In meiner IDE, alles, was ich zu tun ist, entweder schreiben:

using namespace std;

oder

#include <unistd.h>

und kompiliert er fein!

Jedoch beim kompilieren über die Kommandozeile auf Linux, alles ist nicht OK. Der compiler sagt mir, dass Sleep ist nicht definiert. Ich kompiliere mit:

g++ -lglut -lGL -lm -o PROGRAM.exe PROGRAM.cpp

Anderen code, den ich geschrieben habe, der nicht Sleep kompiliert fein in dieser Art und Weise.

Welche Bibliothek muss ich liefern, um den linker (mit -l), um die Sleep Funktion erkannt?

  • Sie haben einen Tippfehler: man 3 sleep
  • Uhh, wieder zu kommen? Kompiliert er fein in meiner IDE
  • Sleep ist ein windows-system nennen. Es existiert nicht in Linux. Sie benötigen sleep oder usleep. Wenn Sie möchten, dass code, der kompiliert auf beiden, werden Sie wahrscheinlich wollen, schreiben eine wrapper-Funktion für ein oder t ' other.
  • Gotcha. Ich habe versucht, einen wrapper wie so: #ifdef _WINDOWS #include <windows.h> #else #include <unistd.h> #define Sleep(x) usleep((x)*1000) #endif Aber mein problem ist, usleep, ist nicht definiert und damit nicht kompilieren auf Windows trotz, mich mit dem unistd header. Ich dachte, es war da drin enthalten.
InformationsquelleAutor Rome_Leader | 2014-09-25
Schreibe einen Kommentar