你好!Qt中用了sqlite3在ubuntu运行,可是交叉编译后下到板子上运行出现”segmentation fault ”
Qt程序中用到了sqlite是数据库在ubuntu中能运行,并能显示数据库中的内容,可是交叉编译后下到板子上运行出现”segmentationfault”是什么问题,而运...
Qt 程序中用到了sqlite是数据库 在ubuntu中能运行,并能显示数据库中的内容,可是交叉编译后下到板子上运行出现”segmentation fault ” 是什么问题,而运行交叉编译后不加数据库的Qt程序且没有出现这样的错误,正正常运行。请高人给指点指点,这是什么原因。
展开
4个回答
展开全部
我原来出现segmentation fault是因为交叉编译的版本与板子上的Linux内核不符,你这种不清楚,但程序的正常运行和文件系统的编译方式紧密相关。
更多追问追答
追问
恩! 不过你之前说的,在存入、读出数据库的时候,可能有出错了? 这个是怎么查到的呢? 还有在问下,你用的是不是友善的板子跟内核呢? 还是说是自己编译了内核和文件系统,因为我现在用的是友善提供的,会不会跟我现在虚拟机里的有不一样呢。 方面给个qq吗?
追答
这是我看到的某朋友写的:
“我回忆以前helloworld成功的时候,还没有自己修改和编译内核,而且我的内核是使用arm-linux-gcc 4.3.2编译的,但是原厂开发板应该是3.4.1编译的,而且我的文件系统也使用的是原厂提供的文件系统,我猜会不会是内核和文件系统编译版本不同造成的?所以,重新烧写了原厂内核,然后再进入文件系统,运行./helloworld,但是仍然报错,然后抓狂,然后一口黑血吐在屏幕上。
回到ubuntu,修改环境变量,把arm-linux-gcc 4.3.2换成 3.4.1,重新编译helloworld,然后考到开发板中,然后把我之前考到/lib目录下的所有库和相应链接都删掉,保留以前系统自带的库,然后./helloworld,结果终于显示出了挨千刀的 hello world!”
以上是别人的,还有一次就是传入数据出错了,我要传的是二进制,结果那协议是按字节,所以传错了,这是我碰到的两个情况,仅供参考下。因为我也不太懂这些东西
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
段错误 主要是因为没有找到对象 或者 越界错误 既然你不加数据库 就没错误 说明错误就集中在数据库上 看看加载db文件时是否使用了正确的API
追问
加载db在pc下的linux中都是可以的,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也出现过这样的问题,是使用Qt自带封装的类库操作sqlite数据库出现问题的。我使用c语言封装的函数接口来操作接没有问题了,可以正常操作。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
板子上有没有移植交叉编译库
追问
交叉库移植了呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询