C++ 标准::原子<;双倍>;在Armv7(RPi2)上和对齐/总线错误

C++ 标准::原子<;双倍>;在Armv7(RPi2)上和对齐/总线错误,c++,c++11,C++,C++11,我使用std::atomic来保护对浮点变量的访问,这些变量可以从多个线程进行评估。这在x86上运行良好,但在ARMv7(RPi2)上崩溃 我使用VS2012、Xcode和GCC4.9.2在x86上编译,没有任何问题。当我为ARMv7(也是GCC4.9.2)编译时,使用原子值的代码会因“总线错误”而崩溃(当数据在ARM上没有正确对齐时会出现这种错误) 这是GCC中的错误还是我做错了什么 相关问题:听起来像是编译器的bug,但如果没有代码,我们就无能为力。另外,考虑避免原子< /代码>。如果频繁地

我使用std::atomic来保护对浮点变量的访问,这些变量可以从多个线程进行评估。这在x86上运行良好,但在ARMv7(RPi2)上崩溃

我使用VS2012、Xcode和GCC4.9.2在x86上编译,没有任何问题。当我为ARMv7(也是GCC4.9.2)编译时,使用原子值的代码会因“总线错误”而崩溃(当数据在ARM上没有正确对齐时会出现这种错误)

这是GCC中的错误还是我做错了什么


相关问题:

听起来像是编译器的bug,但如果没有代码,我们就无能为力。另外,考虑避免<代码>原子< /代码>。如果频繁地从不同的线程访问,这确实会降低您的性能(因为每次另一个线程编写
原子代码时,每个线程都必须更新整个缓存线)。很可能是gcc错误,但我们不知道您是否做错了什么,所以,展示你的代码以及你是如何编译的。@walter:我会拿出一些代码,尽快准备一个例子。除了原子,还有哪些替代方案不会影响性能?