linux下用QLibrary载入动态库

在win下用QLibrary 载入动态库并不难,代码如下

cpp 复制代码
QString strDll = "defineLib.dll";
QLibrary* pLibrary = new QLibrary(strDll);
if (pLibrary->load())
{
   ///成功
}
else
{
   ///失败
}

在做代码移植到Ubuntu上的时候把dll改成so,但是发现,动态库都不能载入了。代码如下。

cpp 复制代码
QString strDll = "libdefineLib.so";
QLibrary* pLibrary = new QLibrary(strDll);
if (pLibrary->load())
{
   ///成功
}
else
{
   ///失败
}

测试动态库也是用Qt Creator生成的,也放到运行路径下了。想不明白,只能用绝对路径了,但是代码增加了一些,总感觉不太好。

后来突然想起来,Linux下都是用"./a.out" 运行程序的。加上这个试试吧。没想到竟然成功了。

cpp 复制代码
QString strDll = "./libdefineLib.so";
QLibrary* pLibrary = new QLibrary(strDll);
if (pLibrary->load())
{
   ///成功
}
else
{
   ///失败
}

期间还犯了一个错误,代码里面的动态库名称大小写没写对,导致无法载入动态库,这个也是要注意的。

相关推荐
强风7948 分钟前
Linux-线程的同步与互斥
linux·服务器
提伯斯64615 分钟前
Orangepi R1内置了哪些网卡驱动?(全志H3的板子)
linux·网络·wifi·全志h3
技术摆渡人19 分钟前
专题二:【驱动进阶】打破 Linux 驱动开发的黑盒:从 GPIO 模拟到 DMA 陷阱全书
android·linux·驱动开发
wishchin39 分钟前
Jetson Orin Trt: No CMAKE_CUDA_COMPILER could be found
linux·运维·深度学习
ArrebolJiuZhou1 小时前
03 rtp,rtcp,sdp的包结构
linux·运维·服务器·网络·arm开发
403240731 小时前
Ubuntu/Jetson 通用:NVMe 硬盘分区、挂载及开机自动挂载完整教程
linux·运维·ubuntu
田地和代码1 小时前
linux应用用户安装jdk以后 如果root安装hbase客户端需要jdk还需要再次安装吗
java·linux·hbase
乔碧萝成都分萝1 小时前
二十四、Linux如何处理中断
linux·驱动开发·嵌入式
真的想上岸啊1 小时前
2、刷机+mobaxterm登录
linux
物理与数学1 小时前
Linux 内核 address_space与页缓存
linux·linux内核