跨平台C?

Moh*_*nde 10 c cross-platform cross-compiling

我正在运行Linux Ubuntu 10.04,我有一台Windows 7机器和一台运行Mac OS X 10.6.4的MacBook.我怎么能写一个简单的C程序(如NOT QT!),如:

#include <stdio.h>

int main(int argc, char **argv)
{
    printf("Hello Linux and Mac and Windows!")
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在我的所有机器上运行而无需在Ubuntu上编译该程序,然后是Windows 7,然后是Mac OS X?我可以在Ubuntu中创建它并交叉编译它以在几个不同的操作系统上运行吗?
更新
我并不是要生成一个二进制文件来运行.我的意思是在同一个操作系统中从相同的C代码生成三个二进制文件.

Mat*_*hen 13

可执行文件具有特定格式(例如ELF)和体系结构(例如x86).因此,您必须多次编译.但是,可以从Ubuntu交叉编译到例如Windows 7 x86和Mac OS X x86.正如您所料,每种方法都不同.

对于Windows,您将需要mingw32.请参阅 在Linux中编译Windows C控制台应用程序 .

对于OS X,请参阅 如何在Linux上编译Intel Mac二进制文件? ,链接到教程.

您可以搜索以查找有关每个的更多信息.