克朗决定给我一个错误。它决定斥责我使用__rdtscp (这不是我的代码,我不知道那是什么)
error: use of undeclared identifier '__rdtscp'
i2 = __rdtscp(&ui2);
^
error: use of undeclared identifier '__rdtscp'
i3 = __rdtscp(&ui3);
^
error: use of undeclared identifier '__rdtscp'
i2 = __rdtscp(&ui2);
^
error: use of undeclared identifier '__rdtscp'
i3 = __rdtscp(&ui3);
^
error: use of undeclared identifier '__rdtscp'
i2 = __rdtscp(&ui2);
^
error: use of undeclared identifier '__rdtscp'
i3 = __rdtscp(&ui3);我真的很想弄清楚为什么阿郎不喜欢我。有人知道__rdtscp是什么吗?我怎么才能让clang冷静下来呢?
发布于 2014-05-03 08:45:04
假设您正在为x86编译,那么有一个__rdtscp内置函数。如果您正在为其他处理体系结构编译,它将不可用,因为rdtscp基本上是x86指令的名称。
这段代码适用于我,从昨天开始使用clang++ 3.5.0:
#include <iostream>
#include <x86intrin.h>
int main()
{
unsigned int dummy;
unsigned long long t1 = __rdtscp(&dummy);
std::cout << "Hello" << std::endl;
unsigned long long t2 = __rdtscp(&dummy);
std::cout << "Time: " << t2 - t1 << std::endl;
}您需要包含x86intrin.h,以便将__rdtscp转换为编译器知道的实际__builtin_ia32_rdtscp函数。
发布于 2014-05-03 06:34:46
RDTSCP on some platforms是RDTSCP指令的固有编译器,RDTSCP指令是最近引入的RDTSC (“读取时间戳计数器”)的序列化版本,用于计算处理器周期数,例如在基准测试或计时器代码中。
Here is a way是在使用gcc时,在C或C++中使用rdtscp()的一种方法。也许同样的方法也适用于Clang?
https://stackoverflow.com/questions/23437796
复制相似问题