Использование 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 (&tv, tp);
Я компилирую с кросс-компилятором Android. Я попытался включить заголовок time.h явно, и он все еще не находит TIMEVAL_TO_TIMESPEC. Как я могу правильно скомпилировать этот код?
1 ответ
Ниже приведена ссылка, которая объясняет все концепции / стандарты даты и времени из библиотеки GNU C, где придерживаются большинство платформ.
https://www.gnu.org/software/libc/manual/html_node/Date-and-Time.html
Если вы нацелены на кроссплатформенную разработку, лучше придерживайтесь вышеуказанных стандартов.
Как и "nathan", указанный в комментариях, используемый макрос специфичен для некоторых UNIX-подобных систем.
Я быстро проверил библиотеку GNU C для даты и времени (ссылка выше). Я не видел макрос "TIMEVAL_TO_TIMESPEC" где-либо.
Может быть, операционные системы, которые происходят от "Berkeley Software Distribution", могут иметь "TIMEVAL_TO_TIMESPEC", но, насколько я знаю, могут не входить в стандартную библиотеку C GNU.
Поправь меня, если я ошибаюсь.