Je tente d'exécuter un programme Windows, qui dépend d'un fichier .dll, qui n'est ni dans le répertoire actuel ni dans le répertoire du programme. La documentation mentionne que la variable "WINEDLLPATH" est utilisée pour donner un indice sur l'endroit où rechercher les bibliothèques. Mais je ne peux pas exécuter le programme même lorsque cette variable est définie :
/home/rudi/foobar $ WINEDLLPATH=/opt/qt/win32/qt/5.6/mingw49_32/bin/ strace -o /tmp/cc1.log /opt/qt/win32/qt/Tools/mingw492_32/libexec/gcc/i686-w64-mingw32/4.9.2/cc1.exe --help
fixme:winediag:start_process Wine Staging 1.9.12 est une version de test contenant des correctifs expérimentaux.
fixme:winediag:start_process Veuillez indiquer votre version exacte lors de la soumission de rapports de bugs sur winehq.org.
err:module:import_dll Bibliothèque libwinpthread-1.dll (nécessaire par L"Z:\\opt\\qt\\win32\\qt\\Tools\\mingw492_32\\libexec\\gcc\\i686-w64-mingw32\\4.9.2\\cc1.exe") introuvable
err:module:LdrInitializeThunk L'initialisation exe principale pour L"Z:\\opt\\qt\\win32\\qt\\Tools\\mingw492_32\\libexec\\gcc\\i686-w64-mingw32\\4.9.2\\cc1.exe" a échoué, statut c0000135
/home/rudi/foobar $ grep libwinpthread-1.dll /tmp/cc1.log
stat64("/home/rudi/.wine/dosdevices/z:/opt/qt/win32/qt/Tools/mingw492_32/libexec/gcc/i686-w64-mingw32/4.9.2/libwinpthread-1.dll", 0xffcdf99c) = -1 ENOENT (Aucun fichier ou dossier de ce type)
stat64("/home/rudi/.wine/dosdevices/z:/opt/qt/win32/qt/Tools/mingw492_32/libexec/gcc/i686-w64-mingw32/4.9.2/libwinpthread-1.dll", 0xffcdf694) = -1 ENOENT (Aucun fichier ou dossier de ce type)
stat64("/home/rudi/.wine/dosdevices/z:/home/rudi/foobar/libwinpthread-1.dll", 0xffcdf99c) = -1 ENOENT (Aucun fichier ou dossier de ce type)
stat64("/home/rudi/.wine/dosdevices/z:/home/rudi/foobar/libwinpthread-1.dll", 0xffcdf694) = -1 ENOENT (Aucun fichier ou dossier de ce type)
stat64("/home/rudi/.wine/dosdevices/c:/windows/syswow64/libwinpthread-1.dll", 0xffcdf694) = -1 ENOENT (Aucun fichier ou dossier de ce type)
stat64("/home/rudi/.wine/dosdevices/c:/windows/system/libwinpthread-1.dll", 0xffcdf694) = -1 ENOENT (Aucun fichier ou dossier de ce type)
stat64("/home/rudi/.wine/dosdevices/c:/windows/libwinpthread-1.dll", 0xffcdf694) = -1 ENOENT (Aucun fichier ou dossier de ce type)
stat64("/home/rudi/.wine/dosdevices/c:/windows/syswow64/libwinpthread-1.dll", 0xffcdf694) = -1 ENOENT (Aucun fichier ou dossier de ce type)
stat64("/home/rudi/.wine/dosdevices/c:/windows/libwinpthread-1.dll", 0xffcdf694) = -1 ENOENT (Aucun fichier ou dossier de ce type)
stat64("/home/rudi/.wine/dosdevices/c:/windows/syswow64/wbem/libwinpthread-1.dll", 0xffcdf694) = -1 ENOENT (Aucun fichier ou dossier de ce type)
open("/lib/wine/libwinpthread-1.dll.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type)
open("/lib/wine/libwinpthread-1.dll.so", O_RDONLY|O_LARGEFILE) = -1 ENOENT (Aucun fichier ou dossier de ce type)
open("/opt/qt/win32/qt/5.6/mingw49_32/bin//libwinpthread-1.dll.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type)
open("/opt/qt/win32/qt/5.6/mingw49_32/bin//libwinpthread-1.dll.so", O_RDONLY|O_LARGEFILE) = -1 ENOENT (Aucun fichier ou dossier de ce type)
La partie irritante concerne les deux dernières lignes. Wine tente d'ouvrir /opt/qt/win32/qt/5.6/mingw49_32/bin//libwinpthread-1.dll.so
, qui serait le fichier correct, s'il n'y avait pas le suffixe .so
.
Existe-t-il un moyen de convaincre Wine de considérer les fichiers .dll dans /opt/qt/win32/qt/5.6/mingw49_32/bin/
de la même manière qu'il traite les fichiers de $PWD ou du répertoire du programme ?