免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: BestPersonal
打印 上一主题 下一主题

超级到菜鸟提问-Linux的程序为什么不能Windows上运行 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-12-10 13:50 |只看该作者
以前我也想过这个问题,同一台机子,知识操作系统不同而已。
编译的程序都是x86的指令,应该可以执行。
我觉得如果说没有用到操作系统相关的东西,
比如只是计算1+1,也不用输入输出,访问硬件的其他任何操作。
我想这个1+1的程序编译后机器码指令序列应该可以在linux上和在windows上运行。
但是程序运行需要一个加载器,这个就是操作系统干的活了。
假想如果根本没有windos和linux操作系统,完全就是写机器码,当然可以执行了。

论坛徽章:
0
12 [报告]
发表于 2008-12-10 19:58 |只看该作者
2楼和10楼的两个,很是XXX,人家提问,你不懂就不要来蹭帖.你看人家LZ自己对问题的解释,显然不是新手,你们以为这个问题很简单,其实你们根本谈不到点子上.很久没来CU了.唉.

论坛徽章:
0
13 [报告]
发表于 2008-12-11 19:44 |只看该作者
11楼说的对,如果编译器编译出的程序包括了不同CPU的机器代码,那么不同的CPU都可以执行这段程序,不用重新编译。但是CPU之上要经过OS,LINUX下查看一个文件file echo,就会看到echo是ELF的执行文件,WINDOWS下就是PE。
LINUX下只能识别OUT格式的和ELF格式的可执行文件。
WINDOWSJ就是PE。
所以不同的程序在不同OS中不能执行。

个人拙见:wink:

论坛徽章:
0
14 [报告]
发表于 2008-12-11 19:51 |只看该作者
我个人认为的两点原因 还请高手斧正
1、文件格式不一样 一个是elf 一个是pe load进内存只有的时候系统就无法识别了
2、他们各自用的函数库不一样 link的时候就会找不到函数而报错
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP