为什么此C代码在Linux上有效,但在没有cygwin的Windows上无效

时间:2018-11-10 12:25:05

标签: c linux windows operating-system

我有一个C代码。

char m[] = "hello";

在Linux上 我用gcc编译此C代码。生成二进制文件。

执行二进制文件时,我看到以下内容作为输出;

char m[] =  {'h','e','l','l','0'};

在Windows计算机上,使用 cygwin gcc ,我将相同的C代码编译为 .exe 文件,然后尝试运行它在cmd中(不是cygwin,适用于cygwin)。屏幕上没有任何内容。

Linux和Windows上的STDOUT / STDERR之间是否有主要区别?

如何将 .exe 文件打印到命令提示符(至少应该执行printf调用)?

P.S:我在Linux和Windows上都使用以下命令来生成二进制文件/ exe。

char m[] = "hello"

1 个答案:

答案 0 :(得分:2)

Cygwin是POSIX兼容的环境。当您在Cygwin中编译某些内容时-它是要在Cygwin中运行。

您需要的是GCC到Windows的端口,称为MinGW。