运行 从批处理文件中可执行的便携式 Qt 应用程序
Run portable Qt app executable from batch file
Windows 快捷方式具有在将文件移动到其他驱动器时取消引用的绝对路径。我希望用户单击一个与子目录中所有 Qt dll 文件分开的文件,而不是快捷方式。
我创建了一个位于可执行文件上方 1 个目录的批处理文件,该文件具有 运行 文件的相对路径。
release
+ db
+ plugins
+ platforms
+ iconengines
+ imageformats
- Qt5Core.dll
- program.exe
- etc....
program.bat
//paths set in main()
QCoreApplication::AddLibraryPath("plugins");
我发现以下代码来自this question:
@start "" "\release\program.exe"
但是当运行时,显示错误信息"windows cannot find.."
我也试过了
@start "" "release\program.exe"
@start "" "%CD%\release\program.exe"
@start "" "%~dp0\release\program.exe"
但是我收到关于 Qt 找不到 "windows" 平台插件的错误,这似乎表明路径有问题。
为什么程序 运行 使用 windows 快捷方式可以正常运行,而批处理文件会失败?
我已经使用您的内容在我的程序的父文件夹中创建了 program.bat,它有效。
在未安装Qt的机器上测试。 OS 是 Windows 7
这是示例应用程序结构
bin
+ platforms
+ iconengines
+ imageformats
- Qt5Core.dll
- program.exe
- etc....
program.bat
program.bat 包含:
@start "" "bin\program.exe"
因此请确保您的应用程序部署良好。
我在我的 pro 文件中使用它来确保每个版本都正确部署:
# Deployment
CONFIG (release, release|debug) {
win32 {
QMAKE_POST_LINK = windeployqt $${DESTDIR}/$${TARGET}.exe --no-translations
# Not necessary when path to VC libraries is correctly set
externalLibs.files += somepath/_windeploy_/msvcr120.dll
externalLibs.files += somepath/_windeploy_/msvcp120.dll
externalLibs.path = $$DESTDIR
# need to add additional build step (make): install
INSTALLS += externalLibs
}
}
Windows 快捷方式具有在将文件移动到其他驱动器时取消引用的绝对路径。我希望用户单击一个与子目录中所有 Qt dll 文件分开的文件,而不是快捷方式。
我创建了一个位于可执行文件上方 1 个目录的批处理文件,该文件具有 运行 文件的相对路径。
release
+ db
+ plugins
+ platforms
+ iconengines
+ imageformats
- Qt5Core.dll
- program.exe
- etc....
program.bat
//paths set in main()
QCoreApplication::AddLibraryPath("plugins");
我发现以下代码来自this question:
@start "" "\release\program.exe"
但是当运行时,显示错误信息"windows cannot find.."
我也试过了
@start "" "release\program.exe"
@start "" "%CD%\release\program.exe"
@start "" "%~dp0\release\program.exe"
但是我收到关于 Qt 找不到 "windows" 平台插件的错误,这似乎表明路径有问题。
为什么程序 运行 使用 windows 快捷方式可以正常运行,而批处理文件会失败?
我已经使用您的内容在我的程序的父文件夹中创建了 program.bat,它有效。
在未安装Qt的机器上测试。 OS 是 Windows 7
这是示例应用程序结构
bin
+ platforms
+ iconengines
+ imageformats
- Qt5Core.dll
- program.exe
- etc....
program.bat
program.bat 包含:
@start "" "bin\program.exe"
因此请确保您的应用程序部署良好。
我在我的 pro 文件中使用它来确保每个版本都正确部署:
# Deployment
CONFIG (release, release|debug) {
win32 {
QMAKE_POST_LINK = windeployqt $${DESTDIR}/$${TARGET}.exe --no-translations
# Not necessary when path to VC libraries is correctly set
externalLibs.files += somepath/_windeploy_/msvcr120.dll
externalLibs.files += somepath/_windeploy_/msvcp120.dll
externalLibs.path = $$DESTDIR
# need to add additional build step (make): install
INSTALLS += externalLibs
}
}