Я хочу скомпилировать следующий код на macos:
struct timeval tv;
int retval = gettimeofday (&tv, NULL);
if (retval == 0)
TIMEVAL_TO_TIMESPEC (&tv, tp); //here I am getting the error
return retval;
Но я получаю ошибку
ошибка: «TIMEVAL_TO_TIMESPEC» не был объявлен в этой области
TIMEVAL_TO_TIMESPEC (&тв, тп);
Я компилирую с кросс-компилятором Android. Я попытался включить заголовок time.h явно, и он все еще не находит TIMEVAL_TO_TIMESPEC. Как я могу правильно скомпилировать этот код?
Ниже приведена ссылка, которая объясняет все концепции / стандарты даты и времени из библиотеки GNU C, где придерживаются большинство платформ.
https://www.gnu.org/software/libc/manual/html_node/Date-and-Time.html#Date-and-Time
Если вы нацелены на кроссплатформенную разработку, лучше придерживайтесь вышеуказанных стандартов.
Как и «nathan», указанный в комментариях, используемый макрос специфичен для некоторых UNIX-подобных систем.
Я быстро проверил библиотеку GNU C для даты и времени (ссылка выше). Я не видел макрос «TIMEVAL_TO_TIMESPEC» где-либо.
Может быть, операционные системы, которые происходят от «Berkeley Software Distribution», могут иметь «TIMEVAL_TO_TIMESPEC», но, насколько я знаю, могут не входить в стандартную библиотеку C GNU.
Поправь меня, если я ошибаюсь.
Других решений пока нет …