Compilación del programa Hello World simple en OS X a través de la línea de comandos

102

Tengo un ejemplo simple de hola mundo que estoy tratando de compilar en OS X, llamado hw.cpp:

#include <iostream>
#include <string>
using namespace std;
int main() {
  cout << "Hello world!" << endl;
  return 0;
}

Me gustaría compilarlo usando gcc, pero no he tenido éxito. También me gustaría escuchar las otras opciones, como usar Xcode.

erikvold
fuente
7
"Sin éxito" realmente no ayuda a nadie a diagnosticar su problema.
Gareth Davidson

Respuestas:

188

Tratar

g++ hw.cpp
./a.out

g++es la interfaz del compilador de C ++ para GCC.
gcces la interfaz del compilador de C para GCC.

Sí, Xcode es definitivamente una opción. Es un IDE GUI que se construye sobre GCC.

Aunque prefiero un enfoque un poco más detallado:

#include <iostream>

int main()
{
    std::cout << "Hello world!" << std::endl;
}
Martin York
fuente
17
@math: return 0está implícito en main.
fredoverflow
3
@mathepic: y el +1. No es necesario en C ++. Si mainllega al final de la función sin golpear una vuelta entonces implícitamente devuelve 0.
Martin York
2
Ah, está bien. Todavía lo usaría para mayor claridad.
alternativa
4
@mathepic: Esa es una opinión. Personalmente me parece más claro no usarlo.
Martin York
1
¿Por qué a.out? En las ventanas espero ver a.exe. En * nix no necesitamos extensiones. ¿Por qué usar .out sobre ninguna extensión? atambién es un nombre predeterminado extraño.
P.Brian.Mackey
35
g++ hw.cpp -o hw
./hw
nadie
fuente
De todos los demás, este funcionó bien para mí. Gracias.
Bruno Recillas
10
user@host> g++ hw.cpp
user@host> ./a.out
Sam Miller
fuente
5

Compilarlo gccrequiere que pase una serie de opciones de línea de comando. Compílelo con en su g++lugar.

Ignacio Vázquez-Abrams
fuente
2

La nueva versión de esto debería leerse así:

xcrun g++ hw.cpp
./a.out
Badmanchild
fuente
Esto me dald: can't link with a main executable file './a.out' for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Edificado el
@ Rat-a-tat-a-tat lo siento, no recuerdo, fue hace 3 años.
Edificado el
1

No especificó cuál es el error que está viendo.

¿Es el problema el que le gccestá dando un error o que no puede ejecutar gccen absoluto?

Si es lo último, la explicación más probable es que no marcó "Soporte de desarrollo de UNIX" cuando instaló las herramientas de desarrollo, por lo que los ejecutables de la línea de comandos no están instalados en su ruta. Vuelva a instalar las herramientas de desarrollo y asegúrese de hacer clic en "personalizar" y marcar esa casilla.

Stephen Canon
fuente
1

Además, puede usar un IDE como CLion (JetBrains) o un editor de texto como Atom, con el complemento del compilador gpp, funciona como un encanto (F5 para compilar y ejecutar).

José Rojas
fuente
1

Utilice lo siguiente para varios archivos .cpp

g++ *.cpp
./a.out
wLc
fuente