2017-01-06 9 views
1

clock_gettimeはMacOS Sierraではもう動作しません。 Xcode 8が出てくる前に私はこれを正しくコンパイルしていました。私は実際にそれを正しくコンパイルするために何をすべきかに固執しています。clock_gettime on MacOS

#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 

#include <time.h> 

int main(){ 
    struct timespec time1, time2; 

    clock_gettime(CLOCK_MONOTONIC,&time1); 
    //Some code I am trying to work out performance of... 
    clock_gettime(CLOCK_MONOTONIC,&time2); 
    printf("Time Taken: %ld",time2.tv_nsec - time1.tv_nsec); 
} 

このようなコードは簡単にコンパイルできません。私はシエラタイミングライブラリが変更されたと言われました。 CLOCK_MONOTONICが定義されていないコンパイラエラーが発生し、暗黙の宣言であるclock_gettimeの警告が表示されます。CLOCK_MONOTONICをランダムに定義するとエラーになり、リンクステージでエラーが発生します。

誰かがコードのコンパイルと実行を行うための修正プログラムや回避策を知っていますか?

答えて

1

私は最近CLOCK_MONOTONICが周りにいたとは思わない。

hereと書かれているように、私はあなたが望むものはおそらくmach_absolute_time()に変換されていると信じています。これは単調で絶対的なもの(おそらくあなたが知っている2つの異なるものです)のようです。

他の有用なヒントは、以下の関連で発見されることになる(しかし、私は重複していないと思います)質問: