Harry Kruger Asked: 2019-08-24 10:06:56 +0800 CST2019-08-24 10:06:56 +0800 CST 2019-08-24 10:06:56 +0800 CST 使用 gcc 编译 c 代码时访问被拒绝 772 我编译了我的 c 程序gcc -c -o test.exe test.c 并且编译没有错误然后当我运行它时给出Access is denied. 这是我的代码 #include <stdio.h> int main() { printf("Hello, World!"); return 0; } c gcc 2 个回答 Voted Best Answer Harry Kruger 2019-08-24T10:42:37+08:002019-08-24T10:42:37+08:00 在没有-c @Scott的情况下尝试 Scott - Слава Україні 2019-08-25T11:52:47+08:002019-08-25T11:52:47+08:00 有多种二进制/目标/可执行代码文件。我不确定这些名称有多标准,但CS 11:编译 C 程序(在加州理工学院)指的是“目标文件”和“二进制可执行文件”。一个简单(也许过于简单)的解释是目标文件包含编译单个源文件产生的指令,而二进制可执行文件代表一个完整的程序。(一旦你超越了“Hello world”级别的编程,通常会有多个源代码文件来构建一个程序。)目标文件,或多或少的定义,是不完整的程序,因此是不可执行的. 使用 编译时-c,您正在创建一个目标文件,其中包含您的main函数,仅此而已。它包含对 的调用,printf但不包含printf函数本身,也不包含查找/加载它的方法。您必须取消该 -c选项,以便获得完整程序的二进制可执行文件。
有多种二进制/目标/可执行代码文件。我不确定这些名称有多标准,但CS 11:编译 C 程序(在加州理工学院)指的是“目标文件”和“二进制可执行文件”。一个简单(也许过于简单)的解释是目标文件包含编译单个源文件产生的指令,而二进制可执行文件代表一个完整的程序。(一旦你超越了“Hello world”级别的编程,通常会有多个源代码文件来构建一个程序。)目标文件,或多或少的定义,是不完整的程序,因此是不可执行的.
使用 编译时
-c
,您正在创建一个目标文件,其中包含您的main
函数,仅此而已。它包含对 的调用,printf
但不包含printf
函数本身,也不包含查找/加载它的方法。您必须取消该-c
选项,以便获得完整程序的二进制可执行文件。