我用编译了我的 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 程序(在加州理工学院)指的是“目标文件”和“二进制可执行文件”。一个简单的(也许过于简单)解释是,目标文件包含编译单个源文件生成的指令,而二进制可执行文件则代表一个完整的程序。(一旦您超越了“Hello world”级别的编程,通常就会有多个源代码文件来构建单个程序。)目标文件或多或少按照定义是,不完整程序,因此不可执行。
使用 进行编译时-c
,您将创建一个目标文件,其中包含您的main
函数,而没有其他内容。它包含称呼到printf
,但它不包含printf
函数本身,也不包含查找/加载函数的方法。您必须关闭该 -c
选项,这样您才能获得完整程序的二进制可执行文件。