为什么C语言编译器编出的软件,只能在windows下运行??
发布网友
发布时间:2022-04-29 16:15
我来回答
共3个回答
热心网友
时间:2023-10-18 17:44
没有这回事。
首先,C语言是编译型语言。同样的代码,使用windows下的编译器产生的可执行文件就只能在windows下运行,但是用linux下的编译器编译出来的可执行文件就可以在linux下面运行。因此跟你所处的环境有关,而跟C语言编译器本质上并没有太大的区别。
举个例子,比如gcc编译器,有windows版本,也有linux版本,用不同的版本编译,就能运行于不同的环境。
然后说一下解释性语言,比如java,所有的java代码都运行于虚拟机jvm上,是靠jvm来解释执行,jvm在这里也就充当了上面编译器的角色(只能说类似)。所有java代码可以直接跨平台执行,因为不同版本的jvm已经有人为我们做好了。
热心网友
时间:2023-10-18 17:45
你的代码如果移植性好的话,一段代码,在windows下编译后,在windows下运行;拿到linux下,重新编译,就可以在linux下运行,不是说你C语言编译器编出的可执行文件。而是不同平台的编译器。
热心网友
时间:2023-10-18 17:45
其实我一也不是很专业,在这里发言有mark的意思,等看高人答案。
我理解的是这个就好像是人类和大猩猩一样,同样的挥手,对人来说是友好,但是对大猩猩是骂人(笑话里的)。
不同的系统,对程序代码的解释是不同的,所以会出错吧。
就好像.net程序在没有.net framework库的时候就是在windows下也是打不开的。
等高人。
热心网友
时间:2023-10-18 17:44
没有这回事。
首先,C语言是编译型语言。同样的代码,使用windows下的编译器产生的可执行文件就只能在windows下运行,但是用linux下的编译器编译出来的可执行文件就可以在linux下面运行。因此跟你所处的环境有关,而跟C语言编译器本质上并没有太大的区别。
举个例子,比如gcc编译器,有windows版本,也有linux版本,用不同的版本编译,就能运行于不同的环境。
然后说一下解释性语言,比如java,所有的java代码都运行于虚拟机jvm上,是靠jvm来解释执行,jvm在这里也就充当了上面编译器的角色(只能说类似)。所有java代码可以直接跨平台执行,因为不同版本的jvm已经有人为我们做好了。
热心网友
时间:2023-10-18 17:45
你的代码如果移植性好的话,一段代码,在windows下编译后,在windows下运行;拿到linux下,重新编译,就可以在linux下运行,不是说你C语言编译器编出的可执行文件。而是不同平台的编译器。
热心网友
时间:2023-10-18 17:45
其实我一也不是很专业,在这里发言有mark的意思,等看高人答案。
我理解的是这个就好像是人类和大猩猩一样,同样的挥手,对人来说是友好,但是对大猩猩是骂人(笑话里的)。
不同的系统,对程序代码的解释是不同的,所以会出错吧。
就好像.net程序在没有.net framework库的时候就是在windows下也是打不开的。
等高人。
热心网友
时间:2023-10-18 17:44
没有这回事。
首先,C语言是编译型语言。同样的代码,使用windows下的编译器产生的可执行文件就只能在windows下运行,但是用linux下的编译器编译出来的可执行文件就可以在linux下面运行。因此跟你所处的环境有关,而跟C语言编译器本质上并没有太大的区别。
举个例子,比如gcc编译器,有windows版本,也有linux版本,用不同的版本编译,就能运行于不同的环境。
然后说一下解释性语言,比如java,所有的java代码都运行于虚拟机jvm上,是靠jvm来解释执行,jvm在这里也就充当了上面编译器的角色(只能说类似)。所有java代码可以直接跨平台执行,因为不同版本的jvm已经有人为我们做好了。
热心网友
时间:2023-10-18 17:45
你的代码如果移植性好的话,一段代码,在windows下编译后,在windows下运行;拿到linux下,重新编译,就可以在linux下运行,不是说你C语言编译器编出的可执行文件。而是不同平台的编译器。
热心网友
时间:2023-10-18 17:45
其实我一也不是很专业,在这里发言有mark的意思,等看高人答案。
我理解的是这个就好像是人类和大猩猩一样,同样的挥手,对人来说是友好,但是对大猩猩是骂人(笑话里的)。
不同的系统,对程序代码的解释是不同的,所以会出错吧。
就好像.net程序在没有.net framework库的时候就是在windows下也是打不开的。
等高人。
热心网友
时间:2023-10-18 17:44
没有这回事。
首先,C语言是编译型语言。同样的代码,使用windows下的编译器产生的可执行文件就只能在windows下运行,但是用linux下的编译器编译出来的可执行文件就可以在linux下面运行。因此跟你所处的环境有关,而跟C语言编译器本质上并没有太大的区别。
举个例子,比如gcc编译器,有windows版本,也有linux版本,用不同的版本编译,就能运行于不同的环境。
然后说一下解释性语言,比如java,所有的java代码都运行于虚拟机jvm上,是靠jvm来解释执行,jvm在这里也就充当了上面编译器的角色(只能说类似)。所有java代码可以直接跨平台执行,因为不同版本的jvm已经有人为我们做好了。
热心网友
时间:2023-10-18 17:44
没有这回事。
首先,C语言是编译型语言。同样的代码,使用windows下的编译器产生的可执行文件就只能在windows下运行,但是用linux下的编译器编译出来的可执行文件就可以在linux下面运行。因此跟你所处的环境有关,而跟C语言编译器本质上并没有太大的区别。
举个例子,比如gcc编译器,有windows版本,也有linux版本,用不同的版本编译,就能运行于不同的环境。
然后说一下解释性语言,比如java,所有的java代码都运行于虚拟机jvm上,是靠jvm来解释执行,jvm在这里也就充当了上面编译器的角色(只能说类似)。所有java代码可以直接跨平台执行,因为不同版本的jvm已经有人为我们做好了。
热心网友
时间:2023-10-18 17:45
你的代码如果移植性好的话,一段代码,在windows下编译后,在windows下运行;拿到linux下,重新编译,就可以在linux下运行,不是说你C语言编译器编出的可执行文件。而是不同平台的编译器。
热心网友
时间:2023-10-18 17:45
其实我一也不是很专业,在这里发言有mark的意思,等看高人答案。
我理解的是这个就好像是人类和大猩猩一样,同样的挥手,对人来说是友好,但是对大猩猩是骂人(笑话里的)。
不同的系统,对程序代码的解释是不同的,所以会出错吧。
就好像.net程序在没有.net framework库的时候就是在windows下也是打不开的。
等高人。
热心网友
时间:2023-10-18 17:45
你的代码如果移植性好的话,一段代码,在windows下编译后,在windows下运行;拿到linux下,重新编译,就可以在linux下运行,不是说你C语言编译器编出的可执行文件。而是不同平台的编译器。
热心网友
时间:2023-10-18 17:45
其实我一也不是很专业,在这里发言有mark的意思,等看高人答案。
我理解的是这个就好像是人类和大猩猩一样,同样的挥手,对人来说是友好,但是对大猩猩是骂人(笑话里的)。
不同的系统,对程序代码的解释是不同的,所以会出错吧。
就好像.net程序在没有.net framework库的时候就是在windows下也是打不开的。
等高人。