在micro2440开发板上运行Qt程序时,有时会发生Segmentation
fault错误。原因有两个,一是在编译开发板上的Qt库时所用arm-linux-gcc和编译Qt程序所用的arm-linux-gcc的版本不同(我想很多人的虚拟机上arm-linux-gcc应该都不止一两个);二是arm-linux-gcc本身的bug。 如果是第一个原因,那么就需要确保Qt库与Qt程序所用arm-linux-gcc相同。第二个问题,惟一有效的解决方法是,使用4.1.2版本的arm-linux-gcc。有人提出可以通过修改Makefile,将-O2改为-O1来解决问题,经过尝试,这个方法并不可行。 此外,运行Qt程序时,如果提示无法加载某些库文件,那么,首先检查环境变量$LD_LIBRARY_PATH是否包含了Qt库文件在开发板上的存放路径;第二,如果环境变量正确,那么,则根据提示,从4.1.2交叉编译工具存放路径下的/lib目录中将所需库文件复制到开发板上的Qt库中去。 续:推荐使用友善的4.4.3版本的交叉编译工具,不仅可以解决Segmental Fault问题,也可以内核reboot失败的问题。 转载至http://hi.baidu.com/???????/blog/item/a28ea217f2c8d20c4a90a7af.html 在移植QT4.6时编译成功,但运行时出现segmentation fault,网上说换成arm-linux-gcc 4.1.2就可以了,但历尽千辛万苦把这个编译下回来后,却发现编译出错,后来在网上找到了如下的方法,试着运行了两个程序都没出问题 程序
qt-embedded-linux-opensource-src-4.5.0/src/gui/embedded/qscreenlinuxfb_qws.cpp 410行: 706行: |
|