是否可以将从 .c 源代码创建的目标文件 .o 转换为 .exe?如果可能的话,是否有使用 gcc 的直接命令?
问问题
37735 次
2 回答
25
gcc foo.o -o foo.exe
于 2010-05-10T15:41:49.147 回答
12
将 a 转换.o
为 a.exe
是可能的,具体取决于.o
. .o
必须满足 a 的要求.exe
。其中之一是main
函数。
我通常按主题将项目分成几部分。每一段都被翻译成一个.o
文件。单个片段不能转换为 a .exe
,但所有合并的片段都可以转换。
例如,如果我编译以下文件,它将变成一个.o
文件:
{hello.c}
#include <stdio.h>
void Hello()
{
puts("Hello");
return;
}
接下来,我编译:
gcc -c hello.c -o hello.o
这将创建hello.o
文件。这无法转换为.exe
文件,因为它没有启动功能。这只是信息。
但是,可以将以下文本转换.o
为.exe
:
{main.c}
#include <stdio.h>
int main(void)
{
puts("Hello from main.\n");
return 0;
}
创建一个.o
文件:
gcc -c -o main.o main.c
由于它有一个入口点,main
根据语言的定义命名,main.o
可以将其转换为.exe
:
gcc -o main.exe main.o
总而言之,有些.o
文件可以转换,.exe
而有些则不能。在 C 和 C++ 语言中,.o
文件必须具有main
函数才能成为可执行.exe
文件。 注意:C 和 C++ 语言规范不需要.o
在创建可执行文件之前翻译成文件。
于 2010-05-10T19:20:52.753 回答