Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. 5.9.7: Problem with copying a DLL during build, uses Linux paths
Forum Updated to NodeBB v4.3 + New Features

5.9.7: Problem with copying a DLL during build, uses Linux paths

Scheduled Pinned Locked Moved Solved Qt Creator and other tools
5 Posts 2 Posters 888 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.
  • S Offline
    S Offline
    SaschaAusUlm
    wrote on last edited by
    #1

    Hi!

    First posting, so be gentle.

    I have an older Windows machine where I compile my software (Qt 5.9.7, MinGW).
    One of my DLLs needs a 3rd party DLL to work.

    So in my .pro file I had:

    aspdllcopyier.target = .copy_asp_for_fridgeproxy
    aspdllcopyier.commands = copy $$shell_path($$_PRO_FILE_PWD_/AspBusDll.dll) $$shell_path($$OUT_PWD/$$BINLOCATION)
    
    QMAKE_EXTRA_TARGETS += aspdllcopyier
    PRE_TARGETDEPS += .copy_asp_for_fridgeproxy
    

    On my "older" machine this works like a charm, and the DLL is copied during build.

    On my new Windows machine, however, I get an error:

    C:/dev/Qt/Qt5.9.7/Tools/mingw530_32/bin/mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory 'C:/src/build-LUISE-Desktop_Qt_5_9_7_MinGW_32bit-Debug/FridgeProxy'
    copy /C/src/lhg-luise/FridgeProxy/AspBusDll.dll /C/src/build-LUISE-Desktop_Qt_5_9_7_MinGW_32bit-Debug/FridgeProxy/debug
    Makefile.Debug:159: recipe for target '.copy_asp_for_fridgeproxy' failed
    mingw32-make[1]: Leaving directory 'C:/src/build-LUISE-Desktop_Qt_5_9_7_MinGW_32bit-Debug/FridgeProxy'
    process_begin: CreateProcess(NULL, copy /C/src/lhg-luise/FridgeProxy/AspBusDll.dll /C/src/build-LUISE-Desktop_Qt_5_9_7_MinGW_32bit-Debug/FridgeProxy/debug, ...) failed.
    make (e=2): The system cannot find the file specified.
    

    It seems that here, $$shell_path seems to believe to be on a Unix or Linux machine.
    I googled the error and copying of DLLs and in the responses people handle this copying differently.
    But ... it works on my old machine. I just cannot figure out, why it works there and not on my new machine.
    Did I do something back then (when I included the DLL) to the environment? But .... what?

    Thanks in advance!

    Sascha

    1 Reply Last reply
    0
    • mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi and welcome to the forums
      Don't worry, even in the spanking section, we are quite gentle ;)

      Just tried here with Qt5.12 / win 10.

      Can you try ( in a clean defualt gui project)
      message($$shell_path($$PRO_FILE_PWD))

      and just run qmake and see what it prints?
      it expands as expected here.

      1 Reply Last reply
      0
      • S Offline
        S Offline
        SaschaAusUlm
        wrote on last edited by
        #3

        Hi!

        First of all thanks for your reply. Gulp .... there's a spanking section?!?! I am out of here!

        Just kidding.

        If I include message($$shell_path($$PRO_FILE_PWD)) (with the underscores) in a fresh new test project I get:

        Project MESSAGE: /C/Users/Sasch/Documents/Test

        which is pretty much Linuxy again.

        Regards,

        Sascha

        1 Reply Last reply
        1
        • S Offline
          S Offline
          SaschaAusUlm
          wrote on last edited by
          #4

          And I kind of found the problem ... more by accident.

          I have installed Qt5.12.1 on my machine ... same error.
          Then I came across this page:

          https://sourceforge.net/p/mingw/mailman/message/27738405/

          and read:

          "'make' detects 'sh.exe' on the PATH. If you don't want it to use
          the MSYS shell, then take MSYS off the PATH."

          A quick check of my environment variables showed that SmartGit, a Git frontend - during installation - had actually added its "git\bin" folder to the PATH, in there a "sh.exe". On my older machine, it either didn't, back then, or I had removed it after installation at some point of time.

          So, I removed the path entry and now the build works.
          Just plain stupid. Did cost many hours of trying and searching.

          Thanks for your assistance anyway. The 5.12 hint made me install that and recheck.
          That finally led me to the believe that it's actually a pure MinGW issue and the discovery of the website.

          Regards,

          Sascha

          mrjjM 1 Reply Last reply
          4
          • S SaschaAusUlm

            And I kind of found the problem ... more by accident.

            I have installed Qt5.12.1 on my machine ... same error.
            Then I came across this page:

            https://sourceforge.net/p/mingw/mailman/message/27738405/

            and read:

            "'make' detects 'sh.exe' on the PATH. If you don't want it to use
            the MSYS shell, then take MSYS off the PATH."

            A quick check of my environment variables showed that SmartGit, a Git frontend - during installation - had actually added its "git\bin" folder to the PATH, in there a "sh.exe". On my older machine, it either didn't, back then, or I had removed it after installation at some point of time.

            So, I removed the path entry and now the build works.
            Just plain stupid. Did cost many hours of trying and searching.

            Thanks for your assistance anyway. The 5.12 hint made me install that and recheck.
            That finally led me to the believe that it's actually a pure MinGW issue and the discovery of the website.

            Regards,

            Sascha

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #5

            @SaschaAusUlm
            Ah super.
            I did test around and never saw it uses unix syntax/paths but
            some other mod suggested it would be the case with MSYS
            which also can be the case it seems, if its detected.
            Good found :)

            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