实际开发中遇到一个小问题,以QLibrary、LoadLibrary 方式载入动态库,调试的时候能正常调用库,但单独运行程序就不行;其实问题不大,但是不注意就搞掉你大半天时间;
以下为使用场景:
自己封装了一个动态库名为A ,A中依赖了三方库动态库B, A库以QLibrary或者 windows 平台 的LoadLibrary方式使用,但是始终是IDE调试就能跑起来,单独运行程序就提示发现不了A dll模块 (路径是没问题的);
这种情况很大一部份原因是因数B 动态库依赖了一些别的动态库,但这个依赖库没有复制到exe目录下面来导致的无法正常运行动态库!注意是复制到exe目录 如果A库与exe目录不同,那么B库依赖也得放到exe目录或者环境变量目录;如果 B库、B库依赖、A库放一起,但是与exe不同,即使QLibrary设置了正常的A库路径,但还是没办法调用的!!!!!!
vs 调试的时候可以可以看到程序载入了那些库(实在不知道缺了什么库就把B库依赖全复制到exe目录后面一个一个删除):