我几乎可以确定我的问题是由于编译后的程序被编译为Linux可执行文件,但我想再次确认一下。
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return EXIT_SUCCESS;
}
上述的"程序"应该可以在Windows和Linux上编译通过,因为它是源代码兼容的,没有任何特定于操作系统的库或类似的东西。
然而,在我的Linux系统上键入 "c99 hello.c -o hello.exe",然后将该"可执行文件"转移到Windows机器上时,它拒绝运行。据我所知,Linux生成的可执行文件只能在Linux上运行,因此添加 ".exe" 没有效果。要在Linux上为Windows构建该程序,我需要在Windows机器上重新编译该程序吗?还是有其他更简单的方法可行?
printf
是用来干什么的?每个系统都使用不同的方式将字符打印到控制台。此外,不仅二进制格式不同,ABI也不同。 - phuclv