为什么Linux下最简单的可执行文件,就不能在Windows下直接运行呢?

ladykiller136 2004-12-28 03:31:05
main()
{
printf("Test");
}
这个最简单的程序,在Linux下编译了以后,应该就已经是二进制的机器码了,而且也没调用什么Linux特有的的函数啊,是ANSI C,为什么在Window下就是不能直接运行呢?
在Window下编译的机器码和Linux下有什么本质的不同呢?
多谢!
...全文
461 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
ladykiller136 2004-12-30
  • 打赏
  • 举报
回复
多谢各位,极大的开阔了思路,散分了!
beepbug 2004-12-29
  • 打赏
  • 举报
回复
Linux的目的程序的框架结构与Windows的完全不一样。库函数的链接机制也完全不一样。
不仅如此。同是Linux,如果一台是X86机,另一台是PowerPC机,也不行的。
一个目的码要移植到另一台上运行,最最起码的两个条件:一是同一指令系统,二是同一操作系统。
转转耳朵 2004-12-29
  • 打赏
  • 举报
回复
打开二进制代码看看就知道,事实上这样简单的程序在做你想它做的事情之前,系统已经做了很多你所不知道的事情了。
hoyt 2004-12-29
  • 打赏
  • 举报
回复
我先这个就同最简单的“你好”汉语对一个不懂汉语的人来说就是听不懂的
道理一样吧。

欢迎访问我的个人网站 www.linuxc.net
superAfx 2004-12-29
  • 打赏
  • 举报
回复
把两个可执行文件放在一块,比较一下大小,然后用Linux的differ命令比较一下,最后在Windows下,分别用UltraEdit打开比较一下。
Windows的开头可能是4D5A,(对应ASCII码"MZ")
whoho 2004-12-29
  • 打赏
  • 举报
回复
可执行文件也有格式的,里面除了机器码,还有
一些特定系统设定的信息
Windows下面就有好几种Exe文件格式

如果真像楼主说的,只有指令的话,那当然可以互换的,但事实并非如此

另外,操作系统实际上是虚拟机,很多跟io有关的操作会被系统统一管理
比如Windows就不允许你直接写屏幕,你的printf要完成操作,必需通过
Win16虚拟机(又一层虚拟机),再通过windows内核,最后才能跟硬件打交道的
呵呵,看看吧
yangl2000 2004-12-29
  • 打赏
  • 举报
回复
windows使用的是PE文件格式,而linux是使用elf格式
X_worm 2004-12-29
  • 打赏
  • 举报
回复
虽然机器码可能相同但可执行文件的文件格式不同,包括启动码及配置参数。
HZHZHXCNXF 2004-12-29
  • 打赏
  • 举报
回复
我想
应该是操作系统的内河不一样
那么调用的函数不一样
那么实现的方法和机器指令都不一样了吧
wwayya 2004-12-28
  • 打赏
  • 举报
回复
可执行文件的格式是有区别的!!!!
quil 2004-12-28
  • 打赏
  • 举报
回复
内容也不一样!!
ladykiller136 2004-12-28
  • 打赏
  • 举报
回复
我是说在Linux下编译以后的可执行文件,放在Window下的使用问题
ladykiller136 2004-12-28
  • 打赏
  • 举报
回复
编译的可执行文件内容肯定是一样的吧,难道二进制文件从Linux转道Window读取内容就变了吗?
alpineflame 2004-12-28
  • 打赏
  • 举报
回复
所用编译器不一样,生成的可执行二进制代码也不一样
ladykiller136 2004-12-28
  • 打赏
  • 举报
回复
我想不通的就是机制怎么个不一样法,因为是在同一个机器上,他们的机器码又是一样的,
也没调用什么和操作系统相关的函数啊,为什么就不能执行呢?
quil 2004-12-28
  • 打赏
  • 举报
回复
二进制就一样吗?格式差远了
blder 2004-12-28
  • 打赏
  • 举报
回复
机制不同
实现方法:一是使用Java;二是在windows下使用Cygwin
ladykiller136 2004-12-28
  • 打赏
  • 举报
回复
看来问题太简单啊,可是我的确想不明白啊!
ladykiller136 2004-12-28
  • 打赏
  • 举报
回复
想不通啊,请大虾们多多指教啊!!

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧