2012-06-30 3 views
0

При попытке построить простую тестовую программу, которая использует атомарные операции, я получаю ошибку undefined reference to `___atomic_fetch_sub_4'
В частности, это происходит только тогда, когда я делаю -- в сочетании с ==:MinGW неопределенная ссылка на `___atomic_fetch_sub_4'

std::atomic&ltstd::size_t> foo; 
if (--foo == 42) { ... }

Код компилируется отлично, но я получаю сообщение об ошибке при попытке ссылки. Я использую MinGW с GCC 4.7.

+0

Согласно [этой ошибке] (http://sourceforge.net/tracker/?func=detail&atid=102435&aid=3420359&group_id=2435), MinGW для x86 еще не поддерживает атомизм. – ildjarn

ответ

0

std::thread и std::atomic все еще имеют очень ограниченную поддержку с помощью MinGW. Если вы хотите поэкспериментировать с этими функциями C++ 11 в окнах, я рекомендую Visual Studio 2012 RC.

+0

Проблема в Visual Studio 2012RC по-прежнему не имеет переменных шаблонов Мне нужно – Mark

+0

Ну, единственным вариантом тогда было бы использовать [MinGW-w64] (http://mingw-w64.sourceforge.net/), который имеет поддержку для атомистики (однако я не могу гарантировать, что вы не столкнетесь с какими-либо проблемами). Кроме того, 'std :: thread' и' std :: regex' все еще отсутствуют. –

 Смежные вопросы

  • Нет связанных вопросов^_^