Ich habe mein C-Programm mit kompiliert gcc -c -o test.exe test.c
und es wurde ohne Fehler kompiliert. Wenn ich es dann ausführe, gibt esAccess is denied.
Das ist mein Code
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}
Antwort1
Versuchen Sie es ohne das
-c
von @Scott
Antwort2
Es gibt mehrere Arten von Binär-/Objekt-/ausführbaren Codedateien. Ich bin mir nicht sicher, wie standardisiert diese Namen sind, aberCS 11: C-Programme kompilieren(am Caltech) bezieht sich auf „Objektdateien“ und „binäre ausführbare Dateien“. Eine einfache (vielleicht etwas vereinfachte) Erklärung ist, dass eine Objektdatei die Anweisungen enthält, die durch die Kompilierung einer einzelnen Quelldatei erzeugt werden, während eine binäre ausführbare Datei ein vollständiges Programm darstellt. (Sobald Sie über die Programmierebene „Hallo Welt“ hinaus sind, ist es üblich, mehrere Quellcodedateien zu haben, um ein einzelnes Programm zu erstellen.) Objektdateien sind mehr oder weniger per DefinitionunvollständigProgramme und sind daher nicht ausführbar.
Wenn Sie mit kompilieren -c
, erstellen Sie eine Objektdatei, die Ihre main
Funktion enthält und sonst nichts. Sie enthält dieAnrufzu printf
, aber es enthält weder die printf
Funktion selbst noch die Mittel zum Suchen/Laden. Sie müssen die Option weglassen -c
, damit Sie eine binäre ausführbare Datei des vollständigen Programms erhalten.