当前位置: 技术问答>linux和unix
奇怪的程序:相同的程序不同机器上编译产生了不同的行为,为什么???
来源: 互联网 发布时间:2017-01-04
本文导语: 有一段程序由内核模块和对应的用户态程序组成,一台机器运行正常,一台一跑就当机,提示内核空指针。两台机器所用的内核完全相同,运行正常的机器是旧的以前留下的配置,不能跑的机器是我新重装Debian以后把...
有一段程序由内核模块和对应的用户态程序组成,一台机器运行正常,一台一跑就当机,提示内核空指针。两台机器所用的内核完全相同,运行正常的机器是旧的以前留下的配置,不能跑的机器是我新重装Debian以后把内核加进去的。所以内核完全一样应该不是问题,那么是不是说在编译环节上两台机器不同呢??我把不能跑的机器上编译的模块放在能跑的机器上,照样跑不了。而能跑的机器自己编译的模块运行正常。
所以我想请问下这种情况是不是因为我新装的系统里面的编译器用的头/库文件什么的和旧机器里面不一样??/usr/include里的linux和asm是链到内核源码里的是一样的,其他的文件夹是不是会随版本发生改变造成这种问题呢?
我不知道除了这个还有什么其他原因会导致两个程序行为不同,向大家请教了。先谢谢大家的帮助。
所以我想请问下这种情况是不是因为我新装的系统里面的编译器用的头/库文件什么的和旧机器里面不一样??/usr/include里的linux和asm是链到内核源码里的是一样的,其他的文件夹是不是会随版本发生改变造成这种问题呢?
我不知道除了这个还有什么其他原因会导致两个程序行为不同,向大家请教了。先谢谢大家的帮助。
|
应该不是头文件的关系。
源代码里面有很多和机器具体实现相关的代码,所以应该是那些原因造成的。
源代码里面有很多和机器具体实现相关的代码,所以应该是那些原因造成的。