Compilé mi programa c gcc -c -o test.exe test.c
y lo compilé sin errores y luego, cuando lo ejecuto, apareceAccess is denied.
este es mi codigo
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}
Respuesta1
Pruébalo sin
-c
Por @Scott
Respuesta2
Hay varios tipos de archivos de código binario/objeto/ejecutable. No estoy seguro de qué tan estándar son estos nombres, peroCS 11: Compilación de programas en C(en Caltech) se refiere a "archivos objeto" y "ejecutables binarios". Una explicación simple (quizás demasiado simplificada) es que un archivo objeto contiene las instrucciones producidas al compilar un único archivo fuente, mientras que un ejecutable binario representa un programa completo. (Una vez que se supera el nivel de programación "Hola mundo", es común tener varios archivos de código fuente para crear un solo programa). Los archivos objeto son, más o menos por definición,incompletoprogramas y, por lo tanto, no son ejecutables.
Cuando compilas con -c
, estás creando un archivo objeto, que contiene tu main
función y nada más. Contiene elllamarto printf
, pero no contiene la printf
función en sí ni los medios para encontrarla/cargarla. Debes dejar fuera la -c
opción, así obtendrás un ejecutable binario del programa completo.