As I've just spent much of my morning finding this issue, I thought I’d share 
it with the community and ask if there's a better way to fix it than the way 
I've done it.

On Windows, I've compiled PySide 5.15.1 against a version of Qt 5.15.1 which 
itself was configured and built using the -icu option.

This causes Qt5Core.dll to depend on icuin67.dll plus a bunch of other related 
icu DLLs. When I built Qt, I copied them all into Qt installation's bin 
directory.

shiboken2.exe depends on Qt5Core.dll, Qt5Network.dll, Qt5Xml.dll and 
Qt5XmlPatterns.dll, as well as libclang.dll, and the Python installation script 
supplied with PySide2 copies each of these DLLs into 
site-packages\shiboken2_generator. However, it does NOT copy the required icu 
libraries, icuin67.dll etc.

When one subsequently attempts to build a CMake-generated Visual Studio project 
that invokes Shiboken2, it fails with a totally cryptic error message:
  
    error MSB6006: "cmd.exe" exited with code -1073741515

...and a hyperlink into a Visual Studio-generated XML project file which has, 
as far as I can see, no connection at all to the problem in hand. This becomes 
a very difficult issue to debug, therefore, since Visual Studio offers no help 
at all in tracing the root cause [besides the fact that the code  -1073741515 
== 0xc0000135 hints at a DLL problem, though even finding that out isn't 
trivial].

I eventually diagnosed and fixed the problem by digging down to the 
CustomBuild.command.1.tlog file associated with the failing project, where I 
found the shiboken2.exe command line that was being executed; typing this in 
from a Windows cmd window provoked the 'icuin67.dll not found' error that I 
needed, and by copying this DLL along with its accompanying ICU DLLs from my Qt 
installation's bin directory to my site-packages\shiboken2_generator directory 
I was able to resolve the problem.

Is there some option I could have specified, when building PySide2 from source, 
to ensure that the ICU dependency would have been detected and the necessary 
DLLs copied across automatically? Or is it up to the user to be aware of any 
additional dependencies that their build of Qt might have, and to copy over any 
additional files manually?



 




_______________________________________________
PySide mailing list
PySide@qt-project.org
https://lists.qt-project.org/listinfo/pyside

Reply via email to