Использование time.h на macos для кросс-компилятора

Я хочу скомпилировать следующий код на 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. Как я могу правильно скомпилировать этот код?

0

Решение

Ниже приведена ссылка, которая объясняет все концепции / стандарты даты и времени из библиотеки 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.

Поправь меня, если я ошибаюсь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]