2013-11-04 35 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:一般来说,不要只是定义随机宏。 –

相关问题