我刚刚使用__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
您应该在启用事务内存支持的情况下编译代码。从这里
使用GCC编译TM程序要启用对TM的支持"-fgnu tm"编译器指令必须添加到编译中命令行示例:gcc-Wall-fgnu tm-O3-o ll ll.c注意在优化级别为0(-O0)的情况下,一些TM优化是禁用(RaR、RaW、RfW、WaR、WaW、优化堆栈内存屏障)。