[问题]linux下跨平台的二进制文件运行

CPU/显卡/打印机/USB设备等硬件问题
回复
francesco_ljw
帖子: 17
注册时间: 2008-08-13 15:15

[问题]linux下跨平台的二进制文件运行

#1

帖子 francesco_ljw » 2008-08-13 15:26

小弟初涉江湖,先拜过各位大侠了!

现在的问题是,手头有一个别人发来的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 内核版本不一样?这是造成我执行出错问题的唯一原因吗? 如果是,我该如何解决?(前提是我拿不到源代码)。如果不是,恳请大侠们指教

先谢了!
头像
想入非非
帖子: 8078
注册时间: 2008-07-14 22:42
来自: Beijing
联系:

#2

帖子 想入非非 » 2008-08-13 18:14

你的处女贴这么这么专业阿!不知道怎么解决阿,等待。。。。 8)
Ubuntu User
francesco_ljw
帖子: 17
注册时间: 2008-08-13 15:15

#3

帖子 francesco_ljw » 2008-08-14 19:50

自己顶一下,大侠们支个招啊
头像
jarodlau
帖子: 501
注册时间: 2005-09-06 20:34
联系:

#4

帖子 jarodlau » 2008-08-14 19:56

hacker程序?
francesco_ljw
帖子: 17
注册时间: 2008-08-13 15:15

#5

帖子 francesco_ljw » 2008-08-14 20:19

不是,跑算法仿真的
头像
Nile
帖子: 990
注册时间: 2006-07-15 11:20
来自: 枫叶刀市

#6

帖子 Nile » 2008-08-14 20:50

再具体说,对方编译的平台是amd x86-64,我本地是intel x86-64, 指令兼容性应该OK的。
个人感觉不一定哦

如果对方真完全按自己机器优化的话用上3D Now!之类的话,你的Intel 64应该是无法执行的
同样你用SSE4.1的话,他的机器也没辙

我感觉前期有输出不一定能保证指令集完全兼容,毕竟有些复杂指令集很少用到,说不定是哪条不能识别指令被你的机器译码为前向跳转,结果构成死循环。。。。 :roll:
Thinkpad T400
头像
shellex
帖子: 2180
注册时间: 2007-02-18 19:33
系统: OSX
来自: lyric.im
联系:

#7

帖子 shellex » 2008-08-14 20:57

楼上正解
既然你诚心诚意地问了
我就大慈大悲地告诉你
为了防止世界被破坏
为了维护世界的和平
贯彻爱与真实的罪恶
可爱而又迷人的反派角色
武藏,小次郎
我们是穿越银河的火箭队,白洞白色的明天在等着我们。就是这样!!喵~~
francesco_ljw
帖子: 17
注册时间: 2008-08-13 15:15

#8

帖子 francesco_ljw » 2008-08-15 12:45

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的话,他的机器也没辙

我感觉前期有输出不一定能保证指令集完全兼容,毕竟有些复杂指令集很少用到,说不定是哪条不能识别指令被你的机器译码为前向跳转,结果构成死循环。。。。 :roll:
头像
jeffwei
帖子: 1344
注册时间: 2007-05-12 22:48

Re:

#9

帖子 jeffwei » 2008-10-25 13:57

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的话,他的机器也没辙

我感觉前期有输出不一定能保证指令集完全兼容,毕竟有些复杂指令集很少用到,说不定是哪条不能识别指令被你的机器译码为前向跳转,结果构成死循环。。。。 :roll:
结果还要交叉编译 :em06
回复