分类: LINUX
2011-05-20 17:59:40
在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库中去。