linux下strace指令彻底解决MySql驱动库未加载问题:QSqlDatabase: QMYSQL driver not loaded

在上一篇文章中,我们讲到了如何使用qt的驱动源码编译mysql的驱动动态库。这次呢,咱们来彻底解决可执行程序找不到Mysql驱动的问题

认识Linux下的strace指令

按照 strace 官网的描述,strace 是一个可用于诊断、调试和教学的 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。

strace 底层使用内核的 ptrace 特性来实现其功能。

在运维的日常工作中,故障处理和问题诊断是个主要的内容,也是必备的技能。strace 作为一种动态跟踪工具,能够帮助运维高效地定位进程和服务故障。它像是一个侦探,通过系统调用的蛛丝马迹,告诉你异常的真相。

关于strace的更多使用方法,大家可以自行百度。这里就不多赘述。

使用strace来查看程序的系统调用行为

strace {可执行程序}

通过该方式执行我们加载驱动错误的程序,然后触发访问数据操作:
在这里插入图片描述
可以看见,程序会在相关的路径下寻找驱动库,如果遍历了这些目录都找不到的话,就会出现后续的错误提示!
接下来,当然是把我们已经编译好的libqsqlmysql.so拷贝到这些目录中的一个:

cp {libqsqlmysql.so} /root/qmini-server/bin/sqldrivers/

好了,接着再次启动程序,你会发现问题已经解决!当然,大家可以举一反三,很多类似的加载动态库的问题呢,你都可以通过strace的方式来观察程序的行为,来具体问题,具体分析!谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值