Linux下Qt动态库的使用

为什么在Linux下编写的动态库使用的时候提示“error while loading shared libraries:libDao.so.1:cannot open shared object file:No such file or derectory”

你需要在makefile文件的编译选项里面加上动态库的路径。例如:-L../../core/stlport/lib

找到libDao.so的路径,然后你编译的时候-L来指定对应的路径

这个问题有很多可能、
1.so目录个编译的时候不一致。我最初遇到的问题就是这样,折腾N久,最后用ld解决。ld是把so的路径重新定义。请注意,你的可执行文件编译的时候so在哪里,你的运行环境就得在哪里。不然就要用ld来修改
2.so的某个依赖项缺少。so可能引用了其他的so,但是其他so没有复制到目标电脑。导致这个so也不能加载
3.1和2的混合。比如so的依赖库有,但是和你编译的时候的目录不一致。等。