从批处理文件启动Qt应用程序

时间:2015-09-17 10:06:13

标签: qt batch-file plugins qwindow

我在Qt和Qt Creator之外开发了一个应用程序,当我运行这个应用程序时,它可以工作。但是当我使用批处理文件来执行应用程序时,我得到了这个错误:

  

应用程序无法启动,因为它无法找到或加载Qt平台插件" Windows

我已经包含了所有的dll,包括platform / qwindows.dll,但我无法理解问题所在。知道什么可能是错的吗?

之前,我认为我使用的外部库设置不正确,但在删除外部库以进行测试后,问题仍然存在。

批处理文件的内容是:

@echo off

set VMT=\\serverName\DEV
set BC_VERSION=v1.0

echo Test release of BeamConfigurator %BC_VERSION%

set BC_HOMEDIR=%VISMT%\BeamConfigurator\%BC_VERSION%
set BC_BINDIR=%ABC_HOMEDIR%\bin

echo %BC_BINDIR%

start /WAIT /B /LOW %BC_BINDIR%\BeamConfigurator.exe

2 个答案:

答案 0 :(得分:0)

看起来您的可执行文件正在尝试访问硬编码(Qt Creator所做的)库路径。如果您已将运行可执行文件所需的所有dll文件复制到与可执行文件相同的目录中,请尝试此操作。

创建一个名为qt.conf的文件,并将其放在与可执行文件相同的目录中。添加这样的必需内容。

[Paths]
Prefix = /some/path
Translations = i18n
Plugins = plugins

可以找到更多信息here

答案 1 :(得分:0)

问题是我的一位同事在测试某些东西时在主函数中添加了以下行。

QCoreApplication::addLibraryPath("./");

删除此行后,它开始使用批处理文件。但我仍然不明白为什么只有当我们从批处理文件中启动它时才会出现问题。即使我把批处理文件放在与可执行文件相同的文件夹中。