没有启用事务内存支持的__transaction_atomic

时间:2015-12-24 08:46:28

标签: c++ gcc locking atomic transactional-memory

我只是使用__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

1 个答案:

答案 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,优化的堆栈内存屏障)。