4 votos

error de compilación: <atomic>no se ha implementado</atomic>

Cuando puedo compilar un programa de código abierto llamado puerta con "hacer" tiene este mensaje de error:

no se aplica de error < atómica >

Debo añadir que conozco este programa y lo compilé varias veces anteriormente sin ningún problema

Se parece a mi configuración:

sudo xcode-select --install 
which gcc
gcc --version

Ejecuto en yosemite 10.10.5, xcode 7.1.1 y he probado varias compilaciones con clang y gcc

1voto

Oskar Puntos 1242

Analizando la cuestión, las ediciones y los comentarios, está claro que la instalación del compilador y de la cadena de los encabezados es probablemente la causa. Podría seguir tratando de agregar cosas, pero me gustaría tomar un rumbo diferente:

  1. Hacer una copia de seguridad completa de la Mac - uno que usted es serio acerca de usar si usted limpie la máquina y ejecutar una prueba de compilación del programa y, a continuación, restaurar la copia de seguridad completa o archivos que usted necesita de forma selectiva a partir de la copia de seguridad.
  2. Quitar Xcode y eliminar todos los compiladores de haber descargado e instalado.
  3. Instalar una herramienta para ayudar con el mantenimiento y la instalación del compilador y la necesidad de encabezado de los archivos de la biblioteca para el último estándar de c++.

La herramienta que yo uso es de homebrew, por lo que se puede instalar por https://brew.sh

  1. brew update
  2. brew doctor - y asegúrese de seguir los consejos del médico o post aquí para obtener asesoramiento
  3. brew install gcc

Aquí está el programa de prueba he utilizado para un mínimo de caso de prueba"

#include<atomic>
#include<iostream>

using namespace std;

int main()
{
    cout << "Hello World" << endl;
}

Antes de usar la "cerveza" de la versión de gcc, me pongo lo que me imagino es el mismo error como:

mac:Desktop me$ /usr/bin/gcc gate\ test.cpp
In file included from gate test.cpp:1:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/atomic:543:2: error: <atomic> is not implemented
#error <atomic> is not implemented
 ^
1 error generated.
mac:Desktop me$ which gcc
/usr/bin/gcc

Pero si puedo compilar usando el "brebaje instalado gcc", me estoy poniendo un muy bonito mensaje detallado

mac:Desktop me$ g++-5 gate\ test.cpp 
In file included from /usr/local/Cellar/gcc/5.2.0/include/c++/5.2.0/atomic:38:0,
                 from gate test.cpp:1:
/usr/local/Cellar/gcc/5.2.0/include/c++/5.2.0/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support for the \
  ^
mac:Desktop me$ g++-5 gate\ test.cpp -std=c++11

TLDR;

  1. señala el compilador g++5
  2. eliminar otros compiladores como sea necesario (incluyendo Xcode posiblemente)
  3. la adición de la opción de compilación -std=c++11

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X