Undefined ссылка на "sleep", но я включил <unistd.h>
Ну, это должно быть глупо. Ниже приведен код can-not-be-simple-simple в C. Он не может скомпилировать выражение "undefined ссылка на сон". Но я думаю, что я включаю весь заголовок системы, который мне нужен...
#include <stdio.h>
#include <unistd.h>
int main()
{
printf("Test starts.\n");
sleep(1);
printf("Test ends.\n");
return 1;
}
Ответы
Ответ 1
Попробуйте это вверху:
#ifdef __unix__
# include <unistd.h>
#elif defined _WIN32
# include <windows.h>
#define sleep(x) Sleep(1000 * x)
#endif
Этот код позволит вам использовать две разные функции под тем же именем, которые делают то же самое. И он компилируется на разных платформах.
Ответ 2
Если вы работаете под операционной системой Windows, включите заголовочный файл windows.h
в свою программу и измените sleep()
на sleep()
.
Проблема исчезнет.
Надеюсь, это поможет.
Ответ 3
Согласно Руководству по программированию Linux, вам нужно только unistd.h, чтобы уснуть работать. Убедитесь, что у вас есть правильные настройки маршрутов. Btw, если вы используете окна, которые не похожи на u, вы можете использовать Sleep, включая Windows.h