【问题标题】:__transaction_atomic without transactional memory support enabled__transaction_atomic 未启用事务内存支持
【发布时间】:2016-03-30 17:21:40
【问题描述】:

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

【问题讨论】:

  • 你可能需要-fgnu-tm

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


【解决方案1】:

您应该在启用事务内存支持的情况下编译代码。 From here

使用 GCC 编译 TM 程序 要启用对 TM 的支持, '-fgnu-tm' 编译器指令必须添加到编译中 命令行。 示例:gcc -Wall -fgnu-tm -O3 -o ll ll.c 请注意 在优化级别 0 (-O0) 下,一些 TM 优化是 禁用(RaR、RaW、RfW、WaR、WaW、优化堆栈内存屏障)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2014-09-20
    • 1970-01-01
    • 2011-09-12
    相关资源
    最近更新 更多