首页| 论坛| 消息

标题:求助 qte小程序在arm开发板上运行出现segmentation fault
作者:znotx
日期:2007-09-03 11:25
内容:

如题,桌面FC4,tmake-1.13 , qtx112.3.2 ,qte 2.3.10 ,arm-linux-gcc 3.4.1
qte编译成PC和ARM两个版本。PC版根据qte2.3.10里的安装手册编译,ARM版根据网友断水刀的方法编译(见附录二)。同样出现下面的错误,
问题一:请问大家这是什么原因?会对生成的库有影响吗?
我使用附录一所示的小程序进行测试,在QVFB运行正确,在ARM版的qte上编译也正常。可是把程序传到开发板上运行出现segmentation fault。我是把ARM版qte下生成的lib和arm的库文件发到我的文件系统中。运行程序前指定export LD_LIBRARY_PATH=/lib;(开发板上库文件)。我第一次移植qte,希望大家指点一下,是否我还需要在文件系统中加入什么东东?谢谢
附录:
一 小程序
#include
#include
int main(int argc, char **argv)
{
QApplication app (argc, argv);
QLabel *hello = new QLabel("HelloQt/Embedded! ", 0);
app.setMainWidget(hello);
hello->show();
return app.exec();
}
二 Qt/E 的交叉编译

要将我们写好的程序发布到开发板上,我们需要对Qt/Embedded 重新编译,与前面在宿主机上编译类似,步骤如下:
1. Build Qt/Embedded
tar –xzvf qt-embedded-2.3.10-free.tar.gz
mv qt-2.3.10 qt-2.3.10-target
export TMAKEDIR=$PWD/tmake-1.13
export QT2DIR=$PWD/qt-2.3.2
export QTEDIR=$PWD/qt-2.3.10-target
cd $QTEDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -xplatform linux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
make
出现
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator new[](unsigned int)'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete(void*)'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `__cxa_pure_virtual'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete[](void*)'
/public/qt/qt-2.3.10-target/lib/libqte.s ..


#1 [tae0512 09-03 16:27]
没有做过,期待高手~~~
#2 [thanwei 09-19 15:10]
Please check your version of uclibc on
1) /usr/local/arm/lib
2) /target/lib
It may due to different version.
#3 [vampireda 10-28 21:10]
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator new[](unsigned int)'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete(void*)'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `__cxa_pure_virtual'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete[](void*)'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator new(unsigned int)'
你的QTE并没有编译成功,链接时没有链接到正确的libc或ulibc库上,检查一下

回复 发表
主题 版块