Почему GCC не видит встроенную атомарную операцию?

В C++11 и более поздних стандартах в язык были добавлены стандартные библиотечные классы и функции для работы с атомарными операциями. Одной из таких операций является std::atomic, которая позволяет выполнять атомарные операции на переменной безопасным для потоков образом.

Однако, для использования встроенных атомарных операций компилятор должен поддерживать аппаратную поддержку для них. Некоторые компиляторы, включая GCC, предоставляют встроенные атомарные операции, которые компилятор может использовать вместо вызова стандартных функций.

Если GCC не видит встроенную атомарную операцию, возможно, это связано с несоответствием компилятора и целевой архитектуры процессора. В этом случае GCC будет использовать более универсальные, но менее эффективные реализации атомарных операций из стандартной библиотеки.

Для того чтобы GCC оптимизировал код с использованием встроенных атомарных операций, необходимо обеспечить соответствие целевой архитектуры и включить поддержку соответствующих аппаратных возможностей при сборке программы. Кроме того, стоит убедиться, что используемая версия GCC поддерживает встроенные атомарные операции для целевой архитектуры.

Если проблема все еще остается, можно обратиться к документации GCC или сообществу разработчиков для более детальной информации и поддержки.