你好!Qt中用了sqlite3在ubuntu运行,可是交叉编译后下到板子上运行出现”segmentation fault ”

Qt程序中用到了sqlite是数据库在ubuntu中能运行,并能显示数据库中的内容,可是交叉编译后下到板子上运行出现”segmentationfault”是什么问题,而运... Qt 程序中用到了sqlite是数据库 在ubuntu中能运行,并能显示数据库中的内容,可是交叉编译后下到板子上运行出现”segmentation fault ” 是什么问题,而运行交叉编译后不加数据库的Qt程序且没有出现这样的错误,正正常运行。请高人给指点指点,这是什么原因。 展开
 我来答
百度网友ca09faf
2014-01-09 · 超过16用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:31.2万
展开全部
我原来出现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!”
以上是别人的,还有一次就是传入数据出错了,我要传的是二进制,结果那协议是按字节,所以传错了,这是我碰到的两个情况,仅供参考下。因为我也不太懂这些东西
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qrs2009
2014-01-13
知道答主
回答量:19
采纳率:100%
帮助的人:3.8万
展开全部
段错误 主要是因为没有找到对象 或者 越界错误 既然你不加数据库 就没错误 说明错误就集中在数据库上 看看加载db文件时是否使用了正确的API
追问
加载db在pc下的linux中都是可以的,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友82718cbac
2014-02-21
知道答主
回答量:10
采纳率:0%
帮助的人:1.1万
展开全部
我也出现过这样的问题,是使用Qt自带封装的类库操作sqlite数据库出现问题的。我使用c语言封装的函数接口来操作接没有问题了,可以正常操作。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wswxfwps
2014-01-14 · TA获得超过173个赞
知道答主
回答量:68
采纳率:0%
帮助的人:28.6万
展开全部
板子上有没有移植交叉编译库
追问
交叉库移植了呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式