clock_t在Linux上不起作用?

时间:2010-12-30 01:46:09

标签: c++

这就是我在WIndows中使用的内容:

#include <ctime>
#include <iostream>

int main( void )
{
    using namespace std;

    clock_t lastT;
    lastT = clock();

    cin.get();
    cin.get();
    return 0;
}

在Linux中我收到错误:

'clock_t' was not declared in this scope

在Linux中是否还有其他一些数据类型?

我在Anjuta IDE中通过单击Run来编译它。

3 个答案:

答案 0 :(得分:3)

您的IDE /编译器不兼容。 C ++标准要求<ctime>标头与C99标头<time.h>相同,除了符号放在std名称空间中(C ++ 03,§17.4.1.2/ 4) 。 C99§7.23.1/ 3要求<time.h>clock_t声明为能够表示时间的算术类型。

因此,如果您的实现未声明clock_t,则它不符合C ++标准。

答案 1 :(得分:2)

我复制/粘贴/编译,我在linux上没有任何问题。

> uname -a
Linux xxxhappy 2.6.16.46-0.12-bigsmp #1 SMP Thu May 17 14:00:09 UTC 2007 i686
i686 i386 GNU/Linux

有关详细信息,请参阅man 3 clock

如果您的文件名为main.cpp,则可以从命令行编译它:

g++ -o main.o -c -g -Wall main.cpp
g++ -o app main.o

或一步到位:

g++ -o app main.cpp

您的可执行文件将命名为app,您可以随意命名。

答案 2 :(得分:1)

确定。我用以下方法解决了这个问题:

int lastT;

代替。其余的工作方式相同。