LINUX.ORG.RU

c.h как без ошибки подключить?

 ,


0

1

Приветствую!

Нужен некий функционал из fdisk (проблема не в нем), взял его с git, собрал, все работает, пытаюсь тянуть инклуды в свой проект простым

#include "./util-linux/include/c.h"

после чего получаю ошибку

In file included from Recoder.cpp:30:0:
./util-linux/include/c.h:402:3: error: #error "System with usleep() or nanosleep() required!"
 # error "System with usleep() or nanosleep() required!"
   ^~~~~
./util-linux/include/c.h: In function ‘void errmsg(char, int, char, const char*, ...)’:
./util-linux/include/c.h:222:39: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
   prog_inv_sh_nm_from_file(__FILE__, 1)
                                       ^
./util-linux/include/c.h:251:26: note: in expansion of macro ‘program_invocation_short_name’
  fprintf(stderr, "%s: ", program_invocation_short_name);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
makefile:37: ошибка выполнения рецепта для цели «Recoder»
make: *** [Recoder] Ошибка 1

Сам c.h понимаю стандартный, но что нужно компилятору не понимаю в этом месте, подскажите???

static inline int xusleep(useconds_t usec)
{
#ifdef HAVE_NANOSLEEP
        struct timespec waittime = {
                .tv_sec   =  usec / 1000000L,
                .tv_nsec  = (usec % 1000000L) * 1000
        };
        return nanosleep(&waittime, NULL);
#elif defined(HAVE_USLEEP)
        return usleep(usec);
#else
# error "System with usleep() or nanosleep() required!"
#endif
}

★★★

Сам c.h понимаю стандартный

Конечно нет. Я не знаю такого заголовочного файла, какой же он стандартный?

А по теме, видимо нужно не только c.h подтаскивать но и config.h или как там у них в мире autotools, который содержит все подобные макросы для конкретной системы:

HAVE_NANOSLEEP
HAVE_USLEEP
fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от fsb4000

fsb4000

imb

Премного благодарен Вам!

С config.h лучше всего

wolverin ★★★
() автор топика
Ответ на: комментарий от imb

imb

вот я тупень, ведь действительно просит меня просто определить один из макросов ))) не сообразил выше по тексту исходника посмотреть

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.