我只是使用__transaction_atomic
编译C / C ++代码,但发生了编译错误
[Error] __transaction_atomic' without transactional memory support enabled
代码是:
#include <stdio.h>
int main()
{
int i = 0;
__transaction_atomic
{
i++;
}
return 0;
}
如何搞清楚?我的编译器是GCC 4.9
答案 0 :(得分:7)
您应该在启用事务内存支持的情况下编译代码。 From here
使用GCC编译TM程序要启用对TM的支持, &#39; -fgnu-TM&#39;必须将编译器指令添加到编译中 命令行。示例:gcc -Wall -fgnu-tm -O3 -o ll ll.c注意 在优化级别0(-O0)的情况下,一些TM优化是 禁用(RaR,RaW,RfW,WaR,WaW,优化的堆栈内存屏障)。