Я скомпилировал свою программу на языке C gcc -c -o test.exe test.c
, и она скомпилировалась без ошибок, а затем, когда я ее запускаю, она выдаетAccess is denied.
Это мой код
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}
решение1
Попробуйте без
-c
@Scott
решение2
Существует несколько видов двоичных / объектных / исполняемых файлов кода. Я не уверен, насколько стандартны эти имена, ноCS 11: Компиляция программ на языке C(в Caltech) относится к «объектным файлам» и «двоичным исполняемым файлам». Простое (возможно, слишком упрощенное) объяснение заключается в том, что объектный файл содержит инструкции, полученные путем компиляции одного исходного файла, в то время как двоичный исполняемый файл представляет собой полную программу. (Как только вы выходите за рамки уровня программирования «Hello world», для построения одной программы обычно используется несколько файлов исходного кода.) Объектные файлы, более или менее по определению,неполныйпрограммы и, следовательно, не являются исполняемыми.
Когда вы компилируете с помощью -c
, вы создаете объектный файл, который содержит вашу main
функцию и ничего больше. Он содержитвызовв printf
, но он не содержит printf
саму функцию или средства ее поиска/загрузки. Вы должны отключить эту -c
опцию, чтобы получить двоичный исполняемый файл полной программы.