2013-11-04 34 views
1

我想使用nanoseconds類型定義在boost::posix_time但似乎這種類型沒有定義。我看着在執行,它看起來像類型定義是由如何在boost :: posix_time中啓用納秒?

#if defined(BOOST_DATE_TIME_HAS_NANOSECONDS) 

保護的,所以我說我的代碼

# define BOOST_DATE_TIME_HAS_NANOSECONDS 

,但我不斷收到相同的編譯錯誤。我在網絡上的一些頁面上看到,我可能需要重建我的boost庫,這對我來說非常合適,但是我沒有在bootstrap.shb2中看到任何相關標誌,即使這是問題,我也會期待這個問題在鏈接而不是編譯期間出現。任何想法是什麼問題?提前致謝。

+0

'我會期待這個問題出現在鏈接不編譯'爲什麼?宏在[預編譯]期間擴展,而不是鏈接。 –

+0

我的意思是說,如果問題是我沒有正確構建boost庫,那麼問題會在連接期間出現,而不是[預編譯] – e271p314

+0

哦,對了,給你;是的,我想是的。取決於選項是否導致使用不同的符號。 –

回答

3

The documentation says

介紹

定義與納米第二/微秒的分辨率和穩定的計算性能的非調整時間系統。納秒分辨率選項爲每個ptime使用96位底層存儲,而微秒分辨率使用每個ptime 64位(詳情請參閱Build Options)。這次系統使用公曆來實現時間表示的日期部分。

而生成選項頁說:

要使用備用分辨率(96位納秒)的可變BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG必須在庫用戶的項目文件中定義(即Makefile文件,Jamfile的,等等)。

請閱讀文檔。

+0

我在45秒內逐字搜索了這個。 –

+0

好的,你說得對,我不得不把這個參數添加到Makefile中,而不是源代碼 – e271p314

+0

@ e271p314:一般來說,不要只是定義隨機宏。 –

相關問題