release a program



  • Hello, I try to release a program but when I put all the dll's in the same file as the app and then I launch the << .exe>> , I receive a message from Windows that say : << the point of entrance (or entry*) of procedure _ZN10QArrayData10deallocateEPS_jj is not found in the library of dynamic links C:\Users\MyName\Deskop\release\MyProg.exe. >>
    Can someone help me ?
    thank you so much
    *trad



  • @JohnJ

    Make sure that you have copied all the right dll's including the version. Use Dependency walker to checck the dll's and try it.

    Other solution is: Static linking(in this case you have to provide the source code to user/client)



  • I've used dependancyWalker and I noticed the errors came from 2 DLL's that don't exist in my computer and they don't see with Qt, dependancyWalker located both in latex files (docs editor). for instances : << c:\MyName\documents\latex\miktex\bin\QT5CORE.DLL >>. the path is not correct although I installed latex on my computer. All errors came from this



  • @JohnJ

    Add Qt Path in the system 'path' variable before the the MIKTex. This might solve the issue.



  • sorry I don't really understand what you mean. I add Qt path in Qtcreator?



  • Otherwise I could delete latex from my computer, that's simpler, I don't need it anymore. Does it solve the problem as well?


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    First thing: NEVER change your PATH environment variable to add a path with .dlls in it.

    What will happen is what you are experiencing right now: another application using Qt has put itself in the PATH so now your application uses that version of Qt before the one that's in the same folder as the executable.

    So in your case, yes, you can remove LateX from your computer and your application should start working or at least start give you errors related to the Qt .dlls that you are bundling it with.



  • PATH should be the last place dlls are searched into so if you deploy the dlls correctly in the .exe folder it should work regardless of how much junk other programs append to PATH

    Source:
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx



  • Hi ,
    I removed latex and miketek, re-install Qt and that's clearer. I have problems with <<Qt5Widget.dll>> . When I run dependWalker, it sends :
    Error: At least one required implicit or forwarded dependency was not found.
    Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
    Warning: At least one delay-load dependency module was not found.
    Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module

    and when I look for this dll in my computer, I find only Qt5Widget that don't have modified for few months while I installed Qt today, that's weird. thanks


  • Lifetime Qt Champion

    How are you doing the deployment part ? Are you using windeployqt ?



  • Did you read the Windows Deployment Article here ?
    http://doc.qt.io/qt-5/windows-deployment.html



  • In fact, in my lesson at university, I learn that dll's could be simply put in the same file that the exe and the exe will run(I understand it like this, in any case). So I've never learned about specific deployment


  • Moderators

    @JohnJ You can do it manually or you can use windeployqt - it will find out which dlls are needed.



  • @JohnJ said:

    simply put in the same file that the exe and the exe will run

    This is false.
    dll means dynamically linked library so by definition it is not included in the main application.
    You can put them in the same folder as the exe and the exe will run but if you want it embedded in the .exe file you need to rebuild the dll project as a static library and link the static .lib to the app



  • My program run ! thank you so much for your advice and your patience :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.