¿Qué es un comando para compilar y ejecutar programas C ++?

Respuestas:

108

Para compilar su código c ++, use:

g++ foo.cpp

foo.cpp en el ejemplo es el nombre del programa que se compilará.

Esto producirá un ejecutable en el mismo directorio llamado a.outque puede ejecutar escribiendo esto en su terminal:

./a.out

g ++ ya debería estar en su $ PATH, por lo que no necesita llamar /usr/bin/g++explícitamente, pero puede usar este último en cualquier caso.

foo.cppdebe estar en el mismo directorio desde el que ejecuta el comando. Si tiene alguna duda, puede asegurarse de estar en el mismo directorio escribiendo ls foo.cppo head foo.cpp(si necesita verificar que está trabajando con el correcto foo).

Como señaló @ con-f-use, el compilador generalmente hará que este archivo sea ejecutable, pero si no, puede hacerlo usted mismo (por lo que el comando para ejecutar, ./a.outo equivalente, funcionará):

chmod +x ./a.out

Para especificar el nombre del archivo de salida compilado, para que no tenga nombre a.out, úselo -ocon su comando g ++.

P.ej

g++ -o output foo.cpp

Esto se compilará foo.cppen el archivo binario denominado outputy puede escribir ./outputpara ejecutar el código compilado.

belacqua
fuente
66
El compilador generalmente hace que el binario ( a.outen este caso) sea ejecutable. Si no puede hacerlo escribiendo: chmod +x a.out. Cuando su programa compilado es ejecutable, puede ejecutarlo escribiendo ./a.out: el punto y la indicación de barra diagonal que desea ejecutar.
con-f-use
@Rajeshkumar, ¿encontraste una de estas respuestas a tu gusto? Si es así, ¿podría marcar una de ellas como la respuesta aceptada (marcando la marca debajo de las flechas de votación arriba / abajo) para que podamos trazar una línea debajo de este problema.
¿Hay alguna diferencia entre g ++ foo.c -o output y g ++ -o output foo.c?
Goldname el
21

Estoy haciendo dos suposiciones aquí:

  1. Ya tiene un archivo / programa fuente C ++ listo para construir
  2. Has configurado un sistema de compilación en tu computadora

La forma más sencilla de compilar un programa C ++ en Ubuntu, o cualquier otra distribución de Linux, es escribir

g++ main.cpp -o main
  • g ++ es la invocación del componente C ++ de GCC , el compilador de facto para C / C ++ y todo el host de otros lenguajes en la plataforma Linux. Actualmente es el único compilador capaz de compilar el kernel de Linux.
  • main.cpp es el archivo fuente de c ++ que desea compilar.
  • -o main especifica el nombre del archivo de salida que desea crear una vez que se compila la fuente. El archivo de origen de destino y el archivo de salida de destino pueden invertirse si lo desea, por lo que g++ -o main main.cppes igualmente válido.
  • Para ejecutar ese programa, debe hacer ./main en el terminal.

Los comandos anteriores suponen que ya se encuentra en la ubicación de los archivos de origen, pero tanto el archivo de origen como el archivo de salida de destino también pueden especificarse como un directorio. Por ejemplo

g++ ~/Desktop/main.cpp -o ~/Projects/main

compilará un archivo fuente C ++ ubicado en su escritorio y colocará el binario ejecutable en una Projectscarpeta en su directorio de inicio. Para ejecutar este ejecutable, ejecute ./Projects/main.


fuente
5

Así es como me gusta compilar con g ++.

$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp

-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the 
name of our source code file
-p: Generate extra code to write profile information suitable for the analysis program prof
amrx
fuente
1
-p: Generate extra code to write profile information suitable for the analysis program prof.
Hans
Me gusta tu respuesta. Trae sugerencias adicionales. Pero realmente debería reformularlo para que sea generalmente aceptable.
LinuxSecurityFreak
1

Necesita g ++, ya que es posible que gcc no compile fácilmente el archivo cpp.
También necesita aprender vim o emacs para escribir código C.
Solo intenta esto en tu terminal:

Escriba un programa de prueba y guárdelo:

$vim hello.cc

Compilar hello.cccon g ++:

$g++ hello.cc -o hello

Ejecutalo:

$./hello

Aquí ./significa que el archivo exe está bajo el directorio actual.

bigeast
fuente
3
gcc es el compilador GNU para el compilador C y C ++. Y el OP no necesariamente necesita saber vim o emacs para escribir código C, hay muchos otros editores de texto e IDE flotando.
Nitin Venkatesh
3
aunque me encanta vim, si alguien ya tiene dificultades para descubrir cómo resolver un problema, sugerir vim no es muy útil.
johanvdw
Personalmente no me gusta vi, pero no importa. Debes alejarte de sugerir un editor específico, de todos modos todos usan el suyo.
LinuxSecurityFreak
0

g++es una interfaz para gcc(GNU Compiler Collection) con algunas macros de C ++ predefinidas y diferentes opciones / indicadores predeterminados.

compilar código c ++ gcces útil cuando g++no está disponible por varias razones, de hecho, es solo cuestión de vincular a la biblioteca c ++ -lstdc++e informar a gcc para tratar la entrada como código c ++ (ya sea mediante el uso de una .Cextensión o forzando el lenguaje con -x)
otros sufijos de nombre de archivo C ++ válidas: .cc, .cp, .cxx, .cpp, .CPP,.c++

ejemplo:

gcc cpp_code.C -lstdc++ la extensión en mayúscula ( .C) es importante para que gcc sepa que es un archivo c ++.

o especificando explícitamente el idioma de entrada:

gcc -x c++ cpp_code.txt -lstdc++ la extensión puede ser cualquier cosa, o incluso nada

de forma predeterminada, el resultado (después de una compilación exitosa) es un a.outarchivo que se puede ejecutar con./a.out


fuente
Su respuesta es más informativa
Billal Begueradj