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

时间:2010-05-10 15:41:20

标签: c++ c gcc object-files

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

2 个答案:

答案 0 :(得分:22)

gcc foo.o -o foo.exe

答案 1 :(得分:9)

根据.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

由于它有一个入口点,根据语言的定义命名为mainmain.o 可以转换为.exe

  gcc -o main.exe main.o

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