2

を使用して C/C++ コードをコンパイルして__transaction_atomicいましたが、コンパイラ エラーが発生しました

  • [Error] __transaction_atomic' without transactional memory support enabled

コードは次のとおりです。

#include <stdio.h>
int main()
{
    int i = 0;
    __transaction_atomic
    {
        i++;
    }
    return 0;
}

それを理解する方法は?私のコンパイラはGCC 4.9です

4

1 に答える 1

7

トランザクション メモリ サポートを有効にしてコードをコンパイルする必要があります。 ここから

GCC を使用した TM プログラムのコンパイル TMのサポートを有効にするには、'-fgnu-tm' コンパイラ指令をコンパイル コマンド ラインに追加する必要があります。例: gcc -Wall -fgnu-tm -O3 -o ll ll.c 最適化レベル 0 (-O0) では、TM 最適化の一部が無効になることに注意してください (RaR、RaW、RfW、WaR、WaW、最適化されたスタック メモリバリア)。

于 2015-12-24T08:56:13.377 に答える