WinDeployqt GuiXxxCreatedByQt.exe,会在GuiXxxCreatedByQt.exe所在目录拷贝一大
堆exe运行所依赖的dll以及plugins、platforms、iconengines、styles和translation
s目录。
通过实验,把platforms、iconengines、styles目录移到plugins目录下,删除用不到的
translations目录,exe仍然可以运行。
但若是把libgcc_s_seh-1.dll、libstdc++-6.dll、libwinpthread-1.dll、Qt5Core.dl
l、Qt5Gui.dll、Qt5OpenGL.dll、Qt5Widgets.dll的任一个移到plugins目录,运行exe
都会提示缺少xxxx.dll的错误。
在GuiXxxCreatedByQt.exe源程序的main函数开头,用stdlib的putenv("PATH=.\plugin
s;"),把plugins目录设置到PATH环境变量里,或者用QApplication::addLibraryPath(
".\plugins"),编译后的exe运行还是不能自动搜索plugins目录下的的dll。
但若是创建一个aa.bat,里面写上set PATH=plugins; \nGuiXxxCreatedByQt.exe,把d
ll都移到plugins目录,运行aa.bat,则exe可以正常运行。
问题来了:不使用bat的方式,仅在exe的main函数里,如何做,才能让编译出来的exe运
行时仅依赖一个plugins目录,而所依赖的dll全在plugins目录下,不在exe目录下?
--
FROM 119.233.180.*