是否可以将从.c源代码创建的目标文件.o转换为.exe? 如果有可能使用gcc直接命令?
答案 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
由于它有一个入口点,根据语言的定义命名为main
,main.o
可以转换为.exe
:
gcc -o main.exe main.o
总之,一些.o
文件可以转换为.exe
,而其他文件则无法转换为.o
。在C和C ++语言中,main
文件必须具有.exe
函数才能成为可执行文件.o
。 注意:在创建可执行文件之前,C和C ++语言规范不需要转换为{{1}}文件。