Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Windows上的MinGW GCC 4.8.0不';不支持原子特性_C++_Gcc_C++11_G++_Atomic - Fatal编程技术网

C++ Windows上的MinGW GCC 4.8.0不';不支持原子特性

C++ Windows上的MinGW GCC 4.8.0不';不支持原子特性,c++,gcc,c++11,g++,atomic,C++,Gcc,C++11,G++,Atomic,根据C++11标准,像SomeType这样的可复制的类型应该完全适合std::atomic…而MSVCcl/EHsc t.cpp工作起来很有魅力。这是GCC的错误吗?如何解决这个奇怪的问题…在编译/链接时尝试传递-latomic。gcc t.cpp-std=c++11-latomic和g++t.cpp-std=c++11-latomic都没有任何效果。可能是您的gcc构建或链接器有问题,你应该指定你的mingw版本和你的工具链所采用的线程模型,mingw有不同的风格。它似乎是.@wesley.m

根据C++11标准,像
SomeType
这样的可复制的类型应该完全适合std::atomic…而MSVC
cl/EHsc t.cpp
工作起来很有魅力。这是GCC的错误吗?如何解决这个奇怪的问题…

在编译/链接时尝试传递
-latomic
gcc t.cpp-std=c++11-latomic
g++t.cpp-std=c++11-latomic
都没有任何效果。可能是您的
gcc
构建或链接器有问题,你应该指定你的mingw版本和你的工具链所采用的线程模型,mingw有不同的风格。它似乎是.@wesley.mesquita我看到了那篇文章,但发现它实际上没有解决。。。
#include <atomic>

struct SomeType
{
    int a;
    int b;
    int c;
    int d;
};

int main()
{
    SomeType s1 = {1, 2, 3, 4};
    std::atomic<SomeType> s2(s1);

    SomeType s3 = s2.load();

    return 0;
}
ccGPZTVk.o:t.cpp(.text$_ZNKSt6atomicI8SomeTypeE4loadESt12memory_order[__ZNKSt6atomicI8SomeTypeE4loadESt12memory_order]+0x21): undefined reference to `__atomic_load_16'
collect2.exe: error: ld returned 1 exit status