Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Dll's in subfolder of exe?
Qt 6.11 is out! See what's new in the release blog

Dll's in subfolder of exe?

Scheduled Pinned Locked Moved Installation and Deployment
17 Posts 5 Posters 15.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    Hedge
    wrote on last edited by
    #1

    Dear Volker (or who else is up at night),

    I'd like to put the shared dlls in a subfolder of my .exe-file but up until know it only recognizes them while they are in the same folder as the .exe.
    How can I change this?

    1 Reply Last reply
    0
    • F Offline
      F Offline
      Franzk
      wrote on last edited by
      #2

      DLL dependencies are searched for in a designated search path, usually being appdir + %PATH%. You would have to add the subdir to your dll search path for this to work, thus requiring some batch-file-magic. I wouldn't bother too much with this to be honest, because people on windows use (should use) short-cuts anyway.

      "Horse sense is the thing a horse has which keeps it from betting on people." -- W.C. Fields

      http://www.catb.org/~esr/faqs/smart-questions.html

      1 Reply Last reply
      0
      • H Offline
        H Offline
        Hedge
        wrote on last edited by
        #3

        Thanks for the explanation.
        You are right. That isn't worth the trouble.

        I know a lot of my users aren't too tech-savy plus my tools are always portable. That means they could be confused by the shitload of .dll's in the application-folder.

        Is there a way to put some .dll's together or put them in the .exe-file itself WITHOUT statically binding or subverting the LGPL-license agreements?

        1 Reply Last reply
        0
        • A Offline
          A Offline
          andre
          wrote on last edited by
          #4

          Not that I know of, no.
          You do not need that many .dll's, I think. Just the Qt modules you use, plus the compiler runtime. Do you use all of Qt's modules?

          1 Reply Last reply
          0
          • H Offline
            H Offline
            Hedge
            wrote on last edited by
            #5

            It's not that many. I use 11.

            1 Reply Last reply
            0
            • F Offline
              F Offline
              Franzk
              wrote on last edited by
              #6

              As long as there is only one executable in the directory, there isn't much they can do wrong, no?

              "Horse sense is the thing a horse has which keeps it from betting on people." -- W.C. Fields

              http://www.catb.org/~esr/faqs/smart-questions.html

              1 Reply Last reply
              0
              • H Offline
                H Offline
                Hedge
                wrote on last edited by
                #7

                [quote author="Franzk" date="1305625156"]As long as there is only one executable in the directory, there isn't much they can do wrong, no?[/quote]

                From the point of view of a healthy human, yes.
                You should see the questions people sometimes ask on my blog about my other tools.

                I guess it comes down to survival of the fittest. If you can't find the .exe you shouldn't use the tool.

                1 Reply Last reply
                0
                • F Offline
                  F Offline
                  Franzk
                  wrote on last edited by
                  #8

                  If there's really a lot of non-savvy users, you should create an installer and be done with it.

                  Or tell people how to create a short cut in their start menu.

                  "Horse sense is the thing a horse has which keeps it from betting on people." -- W.C. Fields

                  http://www.catb.org/~esr/faqs/smart-questions.html

                  1 Reply Last reply
                  0
                  • G Offline
                    G Offline
                    goetz
                    wrote on last edited by
                    #9

                    I would recommend creating an installer too. I use "InnoSetup":http://www.jrsoftware.org/isinfo.php with great success, others use "NSIS":http://nsis.sourceforge.net/Main_Page. If you're brave you can have a look at Qt's own "Installer Framework":https://qt.gitorious.org/qt-labs/installer-framework on the labs.

                    Those make it easy to setup desktop icons, taskbar shortcuts and application menu entries. Additionally, the installers (at least Inno and NSIS) support updates, so when a new version of your software is out, the users would not have to fiddle around themselfs, but the installer replaces the necessary pieces.

                    http://www.catb.org/~esr/faqs/smart-questions.html

                    1 Reply Last reply
                    0
                    • H Offline
                      H Offline
                      Hedge
                      wrote on last edited by
                      #10

                      Thanks for your suggestions but I'm a die-hard portable application advocate.

                      1 Reply Last reply
                      1
                      • G Offline
                        G Offline
                        goetz
                        wrote on last edited by
                        #11

                        Hm? You lost me :-) You mean portable in a sense of Win/Mac/Linux or in the sense of having just an application folder that you can drag between different workstations of the same os?

                        http://www.catb.org/~esr/faqs/smart-questions.html

                        1 Reply Last reply
                        0
                        • H Offline
                          H Offline
                          Hedge
                          wrote on last edited by
                          #12

                          Sorry, for not being clear.

                          I mean portable in a sense of "Put that folder wherever you want and never care about it again".

                          1 Reply Last reply
                          0
                          • G Offline
                            G Offline
                            giesbert
                            wrote on last edited by
                            #13

                            Hi Hedge,

                            for which platform do you do that?
                            There are platform dependent ways to achieve new dll directories (e.g. for windows, you can call SetDllDirectory: http://msdn.microsoft.com/en-us/library/ms686203(VS.85).aspx ).

                            [EDIT: fixed link, Volker]

                            Nokia Certified Qt Specialist.
                            Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

                            1 Reply Last reply
                            0
                            • G Offline
                              G Offline
                              goetz
                              wrote on last edited by
                              #14

                              Ah, ok :-)

                              That should work. Windows has alias files (files ending in .lnk if shown on another OS). I don't know if these work on absolute or relative path names. If they work on relative paths, you can put everything, including the exe, in a subdirectory and have an alias point to your exe). But as said, I don't know if that still works if you move the directory to another direction or copy it to another windows box.

                              http://www.catb.org/~esr/faqs/smart-questions.html

                              1 Reply Last reply
                              0
                              • H Offline
                                H Offline
                                Hedge
                                wrote on last edited by
                                #15

                                My aplication will be on OSX and Windows.
                                On OSX I'm already pleased with the structure.

                                On Windows I'll try your suggestion.

                                1 Reply Last reply
                                0
                                • G Offline
                                  G Offline
                                  goetz
                                  wrote on last edited by
                                  #16

                                  [quote author="Gerolf" date="1305629162"]Hi Hedge,

                                  for which platform do you do that?
                                  There are platform dependent ways to achieve new dll directories (e.g. for windows, you can call SetDllDirectory: http://msdn.microsoft.com/en-us/library/ms686203(VS.85).aspx ).

                                  [EDIT: fixed link, Volker][/quote]

                                  That will not work as it needs a running application and application startup will fail on missing QtCore4.dll

                                  http://www.catb.org/~esr/faqs/smart-questions.html

                                  1 Reply Last reply
                                  0
                                  • G Offline
                                    G Offline
                                    giesbert
                                    wrote on last edited by
                                    #17

                                    That's correct, not for startup, I forgot.
                                    I used this for dynamically loaded dll with loadLibrary...

                                    and it does not create link files, it just expands the dll search path for a while :-)

                                    Nokia Certified Qt Specialist.
                                    Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

                                    1 Reply Last reply
                                    0

                                    • Login

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups
                                    • Search
                                    • Get Qt Extensions
                                    • Unsolved