0

可能重复:
std::this_thread::sleep_for() 和 GCC

尝试编写一个简单的计时器和一些代码来测试它,让程序休眠一段时间:

#include <chrono>
#include <thread>

Aux::Timer timer;
timer.start();
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
timer.stop();
std::chrono::duration<int64_t, std::milli> t = timer.elapsed();

这给了我一个编译器错误:

17:45:28 **** Incremental Build of configuration EnsembleClustering-DPar for project EnsembleClustering ****
make all 
Building file: ../src/aux/test/AuxGTest.cpp
Invoking: GCC C++ Compiler
/usr/local/bin/g++-4.7 -I/usr/local/Cellar/gcc/4.7.2/gcc/include/c++/4.7.2 -I/Users/cls/workspace/gtest/include -I/usr/local/Cellar/log4cxx/0.10.0/include -I/Users/cls/workspace/STINGER/include -O0 -g3 -D_GLIBCXX_DEBUG -p -pg -Wall -c -fmessage-length=0 -std=c++11 -g -pg -fopenmp -MMD -MP -MF"src/aux/test/AuxGTest.d" -MT"src/aux/test/AuxGTest.d" -o "src/aux/test/AuxGTest.o" "../src/aux/test/AuxGTest.cpp"
../src/aux/test/AuxGTest.cpp: In member function 'virtual void AuxGTest_testTimer_Test::TestBody()':
../src/aux/test/AuxGTest.cpp:72:2: error: 'sleep_for' is not a member of 'std::this_thread'
make: *** [src/aux/test/AuxGTest.o] Error 1

我以前没用过<thread>图书馆。你能建议一个快速修复吗?我也很高兴有一个替代方法来测试计时器的正确性。

4

1 回答 1

2

修复了此处描述的问题:std::this_thread::sleep_for() 和 GCC

#define _GLIBCXX_USE_NANOSLEEP 1在文件的开头有一个。

于 2013-01-21T18:35:40.607 回答