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