Saltar al contenido

¿Cómo compilo C ++ con Clang?

Después de tanto trabajar ya encontramos el arreglo de esta pregunta que algunos de nuestros lectores de nuestro espacio han presentado. Si tienes algún dato que compartir no dudes en compartir tu conocimiento.

Solución:

El comando clang es para C, y el comando clang++ es para C ++.

No sé por qué no hay una respuesta que aborde directamente el problema. Cuando desee compilar un programa C ++, es mejor utilizar clang++. Por ejemplo, lo siguiente me funciona:

clang++ -Wall -std=c++11 test.cc -o test

Si se compila correctamente, producirá el archivo ejecutable test, y puede ejecutar el archivo usando ./test.

O simplemente puede usar clang++ test.cc para compilar el programa. Producirá un archivo ejecutable predeterminado llamado a.out. Usar ./a.out para ejecutar el archivo.

Todo el proceso es muy parecido a g ++ si está familiarizado con g ++. Consulte esta publicación para comprobar qué advertencias se incluyen con -Wall opción. Esta página muestra una lista de indicadores de diagnóstico compatibles con Clang.

Una nota sobre el uso clang -x c++: Kim Gräsman dice que también puede usar
clang -x c++ para compilar programas cpp, pero eso puede no ser true. Por ejemplo, tengo un programa simple a continuación:

#include 
#include 

int main() 
    /* std::vector v = 1, 2, 3, 4, 5; */
    std::vector v(10, 5);
    int sum = 0;
    for (int i = 0; i < v.size(); i++)
        sum += v[i]*2;
    
    std::cout << "sum is " << sum << std::endl;
    return 0;
                                                      

clang++ test.cc -o test se compilará correctamente, pero clang -x c++ no lo hará, mostrando muchos errores de referencias indefinidas. Entonces supongo que no son exactamente equivalentes. Es mejor usar clang++ en vez de clang -x c++ al compilar programas en C ++ para evitar problemas adicionales.

  • versión clang: 11.0.0
  • Plataforma: Ubuntu 16.04

Además, para la posteridad, Clang (como GCC) acepta la -x cambie para establecer el idioma de los archivos de entrada, por ejemplo,

$ clang -x c++ some_random_file.txt

Este hilo de la lista de correo explica la diferencia entre clang y clang++ bien: Diferencia entre clang y clang ++

Al final de la web puedes encontrar las explicaciones de otros usuarios, tú de igual manera tienes la opción de insertar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *