• 7342阅读
  • 2回复

【提问】qt/embedded应用程序在交叉编译后生成的二进制文件下载到板子后出现的错误 [复制链接]

上一主题 下一主题
离线jackyjun
 
只看楼主 倒序阅读 楼主  发表于: 2006-02-13
我在做的是qt的arm移植,以一个hello的程序为例,安装设置好用于交叉编译的qt/embedded,并重新设置了各个环境变量,将TMAKEPATH和QTDIR等都指向交叉编译的路径。顺利的交叉编译成功,而当我将生成的hello二进制文件下载到板子上运行时,却出现了这样的错误,
[root@(none) /]# cd tmp
[root@(none) tmp]# ls
Applications Settings qcop-msg-qpe         qtembedded-unknown
Documents   hello   qcop-msg-quicklauncher
[root@(none) tmp]# ./hello
./hello: relocation error: /Qtopia/qt-2.3.7/lib/libqte.so.2: undefined symbol: _cxa_pure_virtual
[root@(none) tmp]#

arm的开发板上自带的根文件系统已经包括了qt的库,根据开发板的说明,只需要将生成的2进制文件下载到板子里就可以直接的运行。
对于这样的错误,我在论坛过去的帖子里也看到有人遇到相同的问题,说是两个库的不一致造成的,可是具体如何做,并没有人详细的说明,这里我想请问大家,我应该具体如何去做才能解决这个问题呢?好像这个问题不是一个人碰到了。

谢谢!
离线liu_ming50

只看该作者 1楼 发表于: 2006-02-17
哦,这个问题我遇到过,不过忘记是怎么解决的了。回忆了一下,给你两个建议。
1.你又没有设置LD_LIBRARY_PATH环境变量?你的说明中没有提到。
2.还有可能是板子自带得QT连接库和你交叉编译好地QT环境不兼容,可以将交叉编译好的lib烧到板子上,或者用nfs命令挂载上主机的qt连接库。
离线doublezha

只看该作者 2楼 发表于: 2006-02-19
在你在pc上建立交叉编译环境的时候, 建立的目录处就应该可以找到,你开发用到的库,用这个库下到板子上,代替开发板自带的,为了安全起见,先从它报错的库开始替换,没有报错的库,就暂时不动,多试几次就知道了。
快速回复
限100 字节
 
上一个 下一个