可以将从.c源代码创建的目标文件.o转换为.exe吗?如果可能的话,有没有用gcc的直接命令呢?
发布于 2010-05-10 23:41:49
gcc foo.o -o foo.exe发布于 2010-05-11 03:20:53
可以将.o转换为.exe,具体取决于.o的内容。.o必须满足.exe的要求。其中之一是main函数。
我通常根据主题将项目分成不同的部分。每一段都被翻译成.o文件。单个片段不能转换为.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文件。
https://stackoverflow.com/questions/2804044
复制相似问题