Compilei meu programa c com gcc -c -o test.exe test.c
e ele compilou sem erros e quando executo ele dáAccess is denied.
Este é o meu código
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}
Responder1
Experimente sem o
-c
Por @Scott
Responder2
Existem vários tipos de arquivos de código binário/objeto/executável. Não tenho certeza de quão padronizados são esses nomes, masCS 11: Compilando programas C(na Caltech) refere-se a “arquivos de objeto” e “executáveis binários”. Uma explicação simples (talvez simplificada demais) é que um arquivo objeto contém as instruções produzidas pela compilação de um único arquivo fonte, enquanto um executável binário representa um programa completo. (Depois que você ultrapassa o nível de programação “Olá, mundo”, é comum ter vários arquivos de código-fonte para construir um único programa.) Arquivos-objeto são, mais ou menos por definição,incompletoprogramas e, portanto, não são executáveis.
Ao compilar com -c
, você está criando um arquivo objeto, que contém sua main
função e nada mais. Ele contém ochamarto printf
, mas não contém a printf
função em si ou os meios de localizá-la/carregá-la. Você deve deixar de fora a -c
opção para obter um executável binário do programa completo.