Qt 应用程序在任务计划程序启动时不加载 sql 个驱动程序
Qt App doesn't load sql drivers when started by task scheduler
我在 exe 附近的同一目录(也是 sqldrivers 文件夹)中编写了一个小应用程序和所有与 Qt 相关的 dll。
问题:应用程序在我手动启动时工作,但当它由 windows 的任务计划程序启动时出现 "QSqlDatabase: driver not loaded, QSqlDatabase: available drivers: QSQLITE QMYSQL ... blah blah" 错误。
有什么想法吗?
确保 Qt SQL 驱动程序插件所依赖的库(例如 libmysql.dll
)也在 PATH 中。
否则 Qt 无法 dlopen
任何 Qt 插件 b/c 不满足依赖关系。
PS: 使用 Dependency Walker (http://www.dependencywalker.com/)
检查 sqldrivers/
中插件的附加依赖关系
将路径添加到 Path 环境变量后,意识到如果我在命令提示符下的任何其他目录中调用 myapp.exe 它不会加载驱动程序,但是如果我将命令提示符目录更改为 exe 的路径它有效。
所以我找到了一个替代解决方案,即创建以下 bat 文件,我使用调度程序调用它并且它有效。
@echo off
d:
cd MyAppPath
start "" "D:\MyAppPath\MyApp.exe"
exit
顺便说一句,不要忘记将路径添加到 ["Path"] 环境,例如“....;D:\MyAppPath”
感谢回复。
我在 exe 附近的同一目录(也是 sqldrivers 文件夹)中编写了一个小应用程序和所有与 Qt 相关的 dll。
问题:应用程序在我手动启动时工作,但当它由 windows 的任务计划程序启动时出现 "QSqlDatabase: driver not loaded, QSqlDatabase: available drivers: QSQLITE QMYSQL ... blah blah" 错误。
有什么想法吗?
确保 Qt SQL 驱动程序插件所依赖的库(例如 libmysql.dll
)也在 PATH 中。
否则 Qt 无法 dlopen
任何 Qt 插件 b/c 不满足依赖关系。
PS: 使用 Dependency Walker (http://www.dependencywalker.com/)
检查sqldrivers/
中插件的附加依赖关系
将路径添加到 Path 环境变量后,意识到如果我在命令提示符下的任何其他目录中调用 myapp.exe 它不会加载驱动程序,但是如果我将命令提示符目录更改为 exe 的路径它有效。
所以我找到了一个替代解决方案,即创建以下 bat 文件,我使用调度程序调用它并且它有效。
@echo off
d:
cd MyAppPath
start "" "D:\MyAppPath\MyApp.exe"
exit
顺便说一句,不要忘记将路径添加到 ["Path"] 环境,例如“....;D:\MyAppPath”
感谢回复。