首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.o文件转换为.exe

问将.o文件转换为.exe
EN

Stack Overflow用户
提问于 2010-05-10 23:41:20
回答 2查看 36.7K关注 0票数 10

可以将从.c源代码创建的目标文件.o转换为.exe吗?如果可能的话,有没有用gcc的直接命令呢?

EN

回答 2

Stack Overflow用户

发布于 2010-05-10 23:41:49

代码语言:javascript
复制
gcc foo.o -o foo.exe
票数 24
EN

Stack Overflow用户

发布于 2010-05-11 03:20:53

可以将.o转换为.exe,具体取决于.o的内容。.o必须满足.exe的要求。其中之一是main函数。

我通常根据主题将项目分成不同的部分。每一段都被翻译成.o文件。单个片段不能转换为.exe,但组合在一起的所有片段都可以转换。

例如,如果我编译以下文件,它将转换为.o文件:

{hello.c}

代码语言:javascript
复制
#include <stdio.h>

void Hello()
{
  puts("Hello");
  return;
}

接下来,我编译:

gcc -c hello.c -o hello.o

这将创建hello.o文件。无法将其转换为.exe文件,因为它没有启动函数。这只是信息。

但是,可以将以下文本从.o转换为.exe

{main.c}

代码语言:javascript
复制
#include <stdio.h>
int main(void)
{
  puts("Hello from main.\n");
  return 0;
}

创建.o文件:

代码语言:javascript
复制
  gcc -c -o main.o main.c

由于它有一个入口点,根据语言的定义,该入口点名为main,因此可以将main.o 转换为.exe

代码语言:javascript
复制
  gcc -o main.exe main.o

总而言之,一些.o文件可以转换为.exe,而另一些则不能。在C和C++语言中,.o文件必须具有main函数才能成为可执行的.exe文件。注意:在创建可执行文件之前,C和C++语言规范不需要转换为.o文件。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2804044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档