¿Cómo ejecutar el programa C en Mac OS X usando Terminal?

81

Soy nuevo en C. Aquí está mi "¡Hola, mundo!" programa.

#include <stdio.h>

int main(void)    
{
  printf("Hello, world!\n");
  return 0;
}

Después de intentar ejecutarlo usando Terminal, dice:

MacBook-Pro-MacBook:~ macbook$ /Users/macbook/Desktop/peng/Untitled1
-bash: /Users/macbook/Desktop/peng/Untitled1: Permission denied
MacBook-Pro-MacBook:~ macbook$ 

¿Por qué?

Bolat Tleubayev
fuente
2
Consulte ¿Cómo compilo un archivo C en mi mac?
Mark Plotnick
¿Qué es el archivo "Untitled1"? ¿El archivo que contiene la fuente que ha incluido en la pregunta es o algo más?
pasaba por aqui
Reemplazar pintfpor printf, mantener int y main en la misma línea.
Walter A

Respuestas:

162

Primero guarde su programa como program.c.

Ahora necesita el compilador, por lo que debe ir a la App Store e instalar Xcode, que es el compilador y las herramientas de desarrollo de Apple. ¿Cómo encontrar la App Store ? Haga una "Búsqueda de Spotlight" escribiendo Spacey comience a escribir App Storey presione Entercuando adivine correctamente.

App Store tiene este aspecto:

ingrese la descripción de la imagen aquí

Xcode se ve así en la App Store :

ingrese la descripción de la imagen aquí

Luego, debe instalar las herramientas de línea de comandos en Terminal . ¿Cómo iniciar Terminal ? Necesitas hacer otra "Búsqueda de Spotlight" , lo que significa que escribes Spacey comienzas a escribir Terminaly presionas Entercuando adivina Terminal.

Ahora instale las herramientas de la línea de comandos como esta:

xcode-select --install

Luego, puede compilar su código simplemente ejecutándolo gcccomo en la siguiente línea sin tener que activar la gran y fea GUI de desarrollo de software llamada Xcode:

gcc -Wall -o program program.c

Nota : En las versiones más recientes de OS X, usaría en clanglugar de gcc, así:

clang program.c -o program

Entonces puedes ejecutarlo con:

./program
Hello, world!

Si su programa es C ++, probablemente querrá usar uno de estos comandos:

clang++ -o program program.cpp
g++ -std=c++11 -o program program.cpp
g++-7 -std=c++11 -o program program.cpp
Mark Setchell
fuente
6
Hágalo gcc -Wall -o program program.cy obtendrá útiles advertencias del compilador (aunque no todas) que le indicarán algunas de las razones por las que su código no funciona.
Schwern
Buena respuesta, pero tenga en cuenta que no hay necesidad de invocar explícitamente clang - gcc tiene un enlace simbólico para clang de todos modos.
Paul R
51

Primero asegúrese de corregir su programa:

#include <stdio.h>

int main(void) {
   printf("Hello, world!\n"); //printf instead of pintf
   return 0;
}

Guarde el archivo como HelloWorld.cy escriba en la terminal:

gcc -o HelloWorld HelloWorld.c

Luego, simplemente ejecute el ejecutable de esta manera:

./HelloWorld

Deberías estar viendo Hello World!

Eduard Grigorescu
fuente
6
Es mejor "guardar el archivo como Untitled.c ". Aún mejor: use un nombre de archivo más significativo.
Jongware
9

No se supone que se ejecute un "programa C". Está destinado a ser compilado en un programa "ejecutable" que luego se puede ejecutar desde su terminal. Necesitas un compilador para eso.

Ah, y la respuesta a su última pregunta ("¿Por qué?") Es que el archivo que está intentando ejecutar no tiene los derechos ejecutables establecidos (lo que un compilador suele hacer automáticamente con el binario, lo que infiere que estaba intentando para ejecutar el código fuente como un script, de ahí la sugerencia de compilación).

Pieter Bruegel el Viejo
fuente
1
¡la mejor respuesta! A "C-program" is not supposed to be run.
Eddie
9

Trabajando en 2019 Por defecto, puede compilar su name.c usando la terminal

 cc name.c

y si necesitas correr solo escribe

 ./name.out
Antonio Cachuan
fuente
2
se muestra como "a.out" en lugar de f "{nombre} .out" sin importar el nombre. siempre es "un" por alguna razón.
Flaming_Dorito
1
@Flaming_Dorito, ese es el comportamiento predeterminado para crear el archivo de objeto ejecutable. Sin embargo, puede optar por darle un nombre de su agrado. Escriba -> cc -o nombre nombre.c
Yash Tamakuwala
@YashTamakuwala ohh ya veo. Gracias
Flaming_Dorito
4

Para hacer esto:

  1. terminal abierta

  2. escriba en la terminal nano:; que es un editor de texto disponible para la terminal. cuando haces esto. algo como esto aparecería.

  3. aquí puedes escribir tu Cprograma

  4. escriba control(^) + x-> que significa salir.

  5. guarde el archivo escribiendo ypara guardar el archivo

  6. escriba el nombre del archivo; p helloStack.c. ej. (no olvide agregar .c )

  7. cuando esto aparezca, escriba gcc helloStack.c

  8. entonces ./a.out: ¡esto debería darte tu resultado!
Simileoluwa Aluko
fuente
3

para compilar c-program en macos simplemente siga los pasos a continuación

usando el comando cd en la terminal, vaya a la ubicación de su programa c,
luego escriba el comando presente a continuación,
haga el nombre del archivo y
luego escriba
./nombredearchivo

Ambati_prasanna_akhil
fuente
2

Para compilar el programa ac en su último macOS, simplemente escriba lo siguiente en la terminal después de guardar el archivo con una extensión .cy al llegar a la ruta donde se guarda el archivo:

cc yourfilename.c

Una vez que haya verificado todos los errores después de la compilación (si corresponde), escriba lo siguiente para ejecutar el código:

./a.out

Estos comandos se prueban en macOS Mojave y funcionan perfectamente bien, ¡felicitaciones, codificación!

usuario11952272
fuente
0

La respuesta es chmod 755 hola - hace que el archivo sea ejecutable ... Es gracioso, así que nadie lo respondió. Tuve el mismo problema en MacOS, que ahora está resuelto.

nano hello.c make hello chmod 755 hello Luego lo ejecuta ./hello

clang --version Apple LLVM versión 8.0.0 (clang-800.0.42.1) Destino: x86_64-apple-darwin15.6.0

no se instaló nada, nano make (clang) chmod - todo dentro de MacOS ya

budwazzer
fuente
-1

1) Primero necesita instalar un compilador GCC para mac (Google e instálelo desde la red)

2) Recuerde la ruta donde está almacenando el archivo C

3) Vaya a Terminal y establezca la ruta

por ejemplo, si ha guardado en una nueva carpeta ProgramC en la carpeta Documento

   then type this in Terminal
    cd Document
    cd ProgramC

4) Ahora puede ver que está en la carpeta donde ha guardado su programa C (le permite guardar su programa como Hello.c)

5) Ahora compila tu programa

   make Hello
   ./hello
ashish8882829
fuente