c++ - boost cpu_timer入门,错误: ‘boost::timer::cpu_timer’ has not been declared

标签 c++ boost gentoo

我正在尝试编译这个简单的程序来开始学习如何使用计时器:

#include <boost/timer.hpp>

using boost::timer::cpu_timer;
//...
nanosecond_type last_checkpoint_time = 0;
cpu_timer checkpoint_timer;  // start the timer

for (;;)
{
  //process_a_transaction();
  if (checkpoint_timer.elapsed().user - last_checkpoint_time > 5*1000000000LL)
  {
    //... create a checkpoint ...
    last_checkpoint_time = checkpoint_timer.elapsed().user;  
    cout << checkpoint_timer.elapsed().user << endl;
  }
}

我正在使用 gentoo linux 并发出以下命令进行编译:

g++ -I/usr/include/boost-1_46 timer1.cpp -o timer

我收到这些错误:

timer1.cpp:3:21: error: ‘boost::timer::cpu_timer’ has not been declared
timer1.cpp:5:1: error: ‘nanosecond_type’ does not name a type
timer1.cpp:6:1: error: ‘cpu_timer’ does not name a type
timer1.cpp:8:1: error: expected unqualified-id before ‘for’
timer1.cpp:8:8: error: expected unqualified-id before ‘)’ token

我正在阅读 errors and warnings 下的文档但我遇到的问题是我只有两个库:

/usr/lib/libboost_test_exec_monitor-1_46.a
/usr/lib/libboost_test_exec_monitor-mt-1_46.a

这是因为我在编译 boost 时没有使用 static-libs 标志吗?使用静态库会更好吗?也许这是一个切线。还有什么会导致上面给出的错误?请原谅我的无知,因为我是 C++/boost 的新手。

谢谢

最佳答案

我还没有使用 cpu_timer我自己,但快速谷歌搜索似乎表明你应该包括 <boost/timer/timer.hpp>反而。至于nanosecond_type的错误你需要使用另一个 using声明。

关于c++ - boost cpu_timer入门,错误: ‘boost::timer::cpu_timer’ has not been declared,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755623/

相关文章:

c++ - 如何找出试图加载 libmysqlclient_r.so 库的内容

c++ - C2597 对非静态成员的非法引用

c++ - GCC 内联汇编错误 : block assembly operand not recognized

c++ - 将 Boost (Spirit) 与 g++(以及后来的 Eclipse)一起使用

c++ - 中毒的空引用和短路表达式评估错误或 UB?

c++ - 是否可以在私有(private)内存空间中分配一个用于 boost 托管共享内存的对象?

c - "#include <asm/io.h>"导致 "error: asm/io.h: No such file or directory"

c++ - 返回 const auto 对象——和 Qt 隐式共享

c++ - 如何在编译时确定 git 存储库的状态?

linux - Gentoo + VICE(commodore 64 模拟器)