2016-11-08 4 views
0

ich den folgenden Code auf macos kompilieren wollen:Mit time.h auf macos für Cross-Compiler

struct timeval tv; 
int retval = gettimeofday (&tv, NULL); 
if (retval == 0) 
    TIMEVAL_TO_TIMESPEC (&tv, tp); //here I am getting the error 
return retval; 

Aber ich erhalte den Fehler

error: 'TIMEVAL_TO_TIMESPEC' was not declared in this scope
TIMEVAL_TO_TIMESPEC (&tv, tp);

ich kompilieren bin mit dem Cross-Compiler von Android. Ich habe versucht, den Header time.h explizit einzufügen, und TIMEVAL_TO_TIMESPEC wird immer noch nicht gefunden. Wie kann ich diesen Code korrekt dompilieren?

+1

'TIMEVAL_TO_TIMESPEC' sieht aus wie ein Unix-Makro. – NathanOliver

Antwort

0

Im Folgenden finden Sie den Link, der alle Konzepte und Standards aus der GNU C-Bibliothek erläutert, in denen sich die meisten Plattformen befinden.

https://www.gnu.org/software/libc/manual/html_node/Date-and-Time.html#Date-and-Time

Wenn Sie zu den oben genannten Standards halten eine Cross-Plattform-Entwicklung besser zielen.

Wie "nathan" in Kommentaren angegeben, ist das Makro für einige UNIX-ähnliche Systeme spezifisch.

Ich verifizierte schnell die GNU C-Bibliothek für Datum und Uhrzeit (oben Link). Ich habe das Makro "TIMEVAL_TO_TIMESPEC" nirgendwo gesehen.

Möglicherweise basieren Betriebssysteme, die von "Berkeley Software Distribution" abstammen, möglicherweise auf "TIMEVAL_TO_TIMESPEC", sind aber, soweit ich weiß, nicht Teil der GNU-Standard-C-Bibliothek.

Korrigieren Sie mich Wenn ich falsch liege.