为什么C语言编译器编出的软件,只能在windows下运行??

2024-11-24 12:22:12
推荐回答(3个)
回答1:

没有这回事。
首先,C语言是编译型语言。同样的代码,使用windows下的编译器产生的可执行文件就只能在windows下运行,但是用linux下的编译器编译出来的可执行文件就可以在linux下面运行。因此跟你所处的环境有关,而跟C语言编译器本质上并没有太大的区别。
举个例子,比如gcc编译器,有windows版本,也有linux版本,用不同的版本编译,就能运行于不同的环境。

然后说一下解释性语言,比如java,所有的java代码都运行于虚拟机jvm上,是靠jvm来解释执行,jvm在这里也就充当了上面编译器的角色(只能说类似)。所有java代码可以直接跨平台执行,因为不同版本的jvm已经有人为我们做好了。

回答2:

你的代码如果移植性好的话,一段代码,在windows下编译后,在windows下运行;拿到linux下,重新编译,就可以在linux下运行,不是说你C语言编译器编出的可执行文件。而是不同平台的编译器。

回答3:

其实我一也不是很专业,在这里发言有mark的意思,等看高人答案。

我理解的是这个就好像是人类和大猩猩一样,同样的挥手,对人来说是友好,但是对大猩猩是骂人(笑话里的)。
不同的系统,对程序代码的解释是不同的,所以会出错吧。
就好像.net程序在没有.net framework库的时候就是在windows下也是打不开的。

等高人。