交叉編譯的二進制文件能在虛擬機運行,到設備就不能用,求解?

内核编译和嵌入式产品的设计与开发
回复
头像
liangwilliam
帖子: 36
注册时间: 2008-07-27 11:16
来自: 廣州
送出感谢: 1 次
接收感谢: 0

交叉編譯的二進制文件能在虛擬機運行,到設備就不能用,求解?

#1

帖子 liangwilliam » 2010-12-27 21:10

昨天 openfetion發佈了2.1.0,同時發佈了命令行版.
想編譯一個能在路由器上運行的 命令行飛信 ,用的是 cliofetion-standalone-2.1.0.tar.gz.
路由器是 ASUS WL520GU ,運行 Tomato Dualwan 1.28.518.
CPU 爲 BCM5354 ,mipsel架構.
第一個交叉編譯爲 toolchains.x86.debian.sp1.tar.bz2 ,編譯出二進制文件,放到路由,運行時提示:
root@ASUS-Routertmp/home/root# cliofetion
cliofetion: can’t load library ‘lStrcmp’
查看依賴關係,宿主機,編譯環境,目標幾,都沒有依賴的文件.
root@ASUS-Routertmp/home/root# ldd cliofetion
lStrcmp => not found
nist_mod_384 => not found
get0_nist_prime_521 => not found
e_521 => not found
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)

在KVM虛擬機(曾經編譯mldonkey,可用)裏編譯了一個二進制文件,在虛擬機內正常運行,但是放到路由器(已添加x屬性),運行時會提示:
root@ASUS-Router:/opt/bin# ./cliofetion
-sh: ./cliofetion: not found
root@ASUS-Router:/opt/bin#

/opt/bin/下存在cliofetion的.在虛擬機下查看依賴關係,把依賴的庫都拷到路由上,提示不變.

不死心,安裝了 Emdebian Toolchain 這個環境,編譯出來之後,放到KVM虛擬機,正常運行.
但放到路由上,運行時又提示:
root@ASUS-Router:/opt/bin# ./cliofetion
-sh: ./cliofetion: not found
root@ASUS-Router:/opt/bin#

小弟是菜鳥,在此求教...
回复

回到 “内核及嵌入式开发”