小弟初涉江湖,先拜过各位大侠了!
现在的问题是,手头有一个别人发来的binary(一个仿真程序),但是源代码我无法得到。我在本地机器上运行后可以有前期输出,表明指令集应该是兼容的,但是最后的结果出不来,cpu和内存一直占着。
具体来说,本来在对方机器应该几秒内完成的程序在我这里一天都没任何结果,而且我的配置比对方高。
再具体说,对方编译的平台是amd x86-64,我本地是intel x86-64, 指令兼容性应该OK的。我通过file (binary_file)得到对方的format是ELF 64bit LSB x86-64 for GNU\linux 2.6.0, statically linked , not stripped, 而我自己本地编译binary 用file的结果是 ELF 64bit LSB x86-64 for GNU\linux 2.6.8, dynamically linked ,stripped
以上输出的具体格式不一定准确因为我是凭记忆写的,但数据肯定对。也就是说两个binary唯一区别在于编译平台的linux 内核版本不一样?这是造成我执行出错问题的唯一原因吗? 如果是,我该如何解决?(前提是我拿不到源代码)。如果不是,恳请大侠们指教
先谢了!
[问题]linux下跨平台的二进制文件运行
-
- 帖子: 17
- 注册时间: 2008-08-13 15:15
- 想入非非
- 帖子: 8078
- 注册时间: 2008-07-14 22:42
- 来自: Beijing
- 联系:
-
- 帖子: 17
- 注册时间: 2008-08-13 15:15
- jarodlau
- 帖子: 501
- 注册时间: 2005-09-06 20:34
- 联系:
-
- 帖子: 17
- 注册时间: 2008-08-13 15:15
- Nile
- 帖子: 990
- 注册时间: 2006-07-15 11:20
- 来自: 枫叶刀市
- shellex
- 帖子: 2180
- 注册时间: 2007-02-18 19:33
- 系统: OSX
- 来自: lyric.im
- 联系:
-
- 帖子: 17
- 注册时间: 2008-08-13 15:15
Thank you so much ! I'm really a stranger in such field and appreciate your explanation very much !
Meanwhile, perhaps the only solution is to ask the host to cross-compile a suitable version of binary for me...
Meanwhile, perhaps the only solution is to ask the host to cross-compile a suitable version of binary for me...
Nile 写了:个人感觉不一定哦再具体说,对方编译的平台是amd x86-64,我本地是intel x86-64, 指令兼容性应该OK的。
如果对方真完全按自己机器优化的话用上3D Now!之类的话,你的Intel 64应该是无法执行的
同样你用SSE4.1的话,他的机器也没辙
我感觉前期有输出不一定能保证指令集完全兼容,毕竟有些复杂指令集很少用到,说不定是哪条不能识别指令被你的机器译码为前向跳转,结果构成死循环。。。。
- jeffwei
- 帖子: 1344
- 注册时间: 2007-05-12 22:48
Re:
结果还要交叉编译francesco_ljw 写了:Thank you so much ! I'm really a stranger in such field and appreciate your explanation very much !
Meanwhile, perhaps the only solution is to ask the host to cross-compile a suitable version of binary for me...
Nile 写了:个人感觉不一定哦再具体说,对方编译的平台是amd x86-64,我本地是intel x86-64, 指令兼容性应该OK的。
如果对方真完全按自己机器优化的话用上3D Now!之类的话,你的Intel 64应该是无法执行的
同样你用SSE4.1的话,他的机器也没辙
我感觉前期有输出不一定能保证指令集完全兼容,毕竟有些复杂指令集很少用到,说不定是哪条不能识别指令被你的机器译码为前向跳转,结果构成死循环。。。。