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

Dma*_*man 11 c c++ gcc object-files

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

sep*_*p2k 22

gcc foo.o -o foo.exe
Run Code Online (Sandbox Code Playgroud)

  • 这是方式...假设您的.c具有main()函数,它依赖于其他.c/.o文件,并且它不需要链接到某些非标准/非包含库. (10认同)

Tho*_*ews 9

根据内容,可以将a转换.o为a .在必须满足的要求.其中之一就是功能. .exe.o.o.exemain

我通常按​​主题将项目分成几部分.每件作品都被翻译成一个.o文件.单件不能转换为a .exe,但可以转换所有组合件.

例如,如果我编译以下文件,它将变成一个.o文件:
{hello.c}

#include <stdio.h>

void Hello()
{
  puts("Hello");
  return;
}
Run Code Online (Sandbox Code Playgroud)

接下来,我编译:

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;
}
Run Code Online (Sandbox Code Playgroud)

创建一个.o文件:

  gcc -c -o main.o main.c
Run Code Online (Sandbox Code Playgroud)

由于它有一个入口点,main按语言定义命名,main.o 可以转换为.exe:

  gcc -o main.exe main.o
Run Code Online (Sandbox Code Playgroud)

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