链接器问题与原子复合struct c ++

时间:2015-08-02 17:48:16

标签: c++ multithreading c++11 gcc

我无法在Cygwin环境下使用gcc 4.9.3

编译以下程序
#include <atomic>

struct composite_struct
{
  int anInt;
  int* aPointer;
};

int main()
{
  composite_struct non_atomic_struct;
  non_atomic_struct.anInt = 1001;
  non_atomic_struct.aPointer = new int(1000);

  std::atomic<composite_struct> atomic_struct;
  atomic_struct.store(non_atomic_struct);
  return 0;
}

链接器发送错误消息[...]"undefined reference to '__atomic_store_16'" [...] relocation truncated to fit: R_X86_64_PC32 against undefined symbol '__atomic_store_16'[...]

我已经看到here在早期版本的gcc中存在问题,gcc 4.9.3仍然如此吗?

感谢。

1 个答案:

答案 0 :(得分:0)

代码存在可移植性问题。

摘录

  1. 使用Visual Studio Express 2013和GNU / Linux系统进行编译。
  2. 在cygwin环境下使用gcc 4.9.2或4.9.3
  3. 进行编译(链接器失败)