Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Static Builds not Working
Forum Updated to NodeBB v4.3 + New Features

Static Builds not Working

Scheduled Pinned Locked Moved Solved General and Desktop
static buildstatic5.10.1nmakemsvc2015
19 Posts 3 Posters 8.3k Views 3 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.
  • E ed-wright
    21 Jun 2018, 14:36

    @raven-worx Thanks for your reply

    1. If I uncomment the line CONFIG += static, should this make my project statically compiled?
    2. Is this a download or do i have to build this. I have a Qt Commercial licence.
    3. So if i want to statically link QNetwork for example do add QTPLUGIN += qnetwork (i am reading the link you sent as we speak)

    @mrjj Thanks again for your reply, I do have a commercial licence but i happy to stay on here if it helps someone else in the future.
    What is the process for statically linking Qt into my project?

    What I ultimately want is a stand-alone application (just an .exe) that i can run to start my application no DLLs

    M Offline
    M Offline
    mrjj
    Lifetime Qt Champion
    wrote on 21 Jun 2018, 14:45 last edited by mrjj
    #7

    @ed-wright
    Hi
    Then you have to build a static Qt version.
    I have seen static pre-build for Qt Device Creation but im not sure
    if they have one for Desktop. (I would ask, it takes quite some time to compile
    a full Qt unless your pc is epic)
    this is a good start read
    https://wiki.qt.io/Build_Standalone_Qt_Application_for_Windows
    and also
    http://amin-ahmadi.com/2016/09/22/how-to-build-qt-5-7-statically-using-msvc14-microsoft-visual-studio-2015/
    but first start with
    http://doc.qt.io/qt-5/build-sources.html
    and make sure you install all it mentions from
    http://doc.qt.io/qt-5/windows-requirements.html
    perl, and also python i recall. This is a must do or
    it will compile for long time and then fail.
    Also, use a good pc. Dual core 1.5 ghz slim laptop will take ages.

    1 Reply Last reply
    1
    • E Offline
      E Offline
      ed-wright
      wrote on 21 Jun 2018, 14:46 last edited by
      #8

      @mrjj

      Back to your original comment, I manually moved over all the Qt5*.dll from C:\QT\Qt5.10.1\5.10.1\msvc2015_64\bin and then ran windeployqt.exe it now executes.

      Changes
      It is now the release version
      My pro is now changed to uncomment the line "#CONFIG += static"
      My C:/QT folder is not currently called this as per your recommendation

      M 1 Reply Last reply 21 Jun 2018, 14:50
      0
      • E ed-wright
        21 Jun 2018, 14:46

        @mrjj

        Back to your original comment, I manually moved over all the Qt5*.dll from C:\QT\Qt5.10.1\5.10.1\msvc2015_64\bin and then ran windeployqt.exe it now executes.

        Changes
        It is now the release version
        My pro is now changed to uncomment the line "#CONFIG += static"
        My C:/QT folder is not currently called this as per your recommendation

        M Offline
        M Offline
        mrjj
        Lifetime Qt Champion
        wrote on 21 Jun 2018, 14:50 last edited by
        #9

        @ed-wright
        Ok, so you successfully made a deployment folder.
        Good work. Its also handy to have to check out stuff.

        But its not static as that is some more work before thats possible,

        1 Reply Last reply
        1
        • E Offline
          E Offline
          ed-wright
          wrote on 21 Jun 2018, 14:56 last edited by
          #10

          @mrjj

          I have gone into my Qt account and started downloading qt-everywhere-src-5.10.1.zip, i hope this is the correct download for the static build of Qt. Its Description is, Qt Source Package, Full Framework with Windows style line endings.

          M 1 Reply Last reply 21 Jun 2018, 14:59
          0
          • E ed-wright
            21 Jun 2018, 14:56

            @mrjj

            I have gone into my Qt account and started downloading qt-everywhere-src-5.10.1.zip, i hope this is the correct download for the static build of Qt. Its Description is, Qt Source Package, Full Framework with Windows style line endings.

            M Offline
            M Offline
            mrjj
            Lifetime Qt Champion
            wrote on 21 Jun 2018, 14:59 last edited by
            #11

            @ed-wright
            Yes, that is the source code. But there is also Qt 5.11
            but i assume you been using 5.10.1 ? ( its perfectly fine)
            You will then compile a static version from it.
            Make sure to reads docs carefully as else it fails and you been wasting hours looking at it compiling.

            E 1 Reply Last reply 21 Jun 2018, 15:14
            1
            • M mrjj
              21 Jun 2018, 14:59

              @ed-wright
              Yes, that is the source code. But there is also Qt 5.11
              but i assume you been using 5.10.1 ? ( its perfectly fine)
              You will then compile a static version from it.
              Make sure to reads docs carefully as else it fails and you been wasting hours looking at it compiling.

              E Offline
              E Offline
              ed-wright
              wrote on 21 Jun 2018, 15:14 last edited by
              #12

              @mrjj
              As im currently using Qt5.10.1 on Qt Creator so i thought i would stick to the same version.

              M 1 Reply Last reply 21 Jun 2018, 15:16
              0
              • E ed-wright
                21 Jun 2018, 15:14

                @mrjj
                As im currently using Qt5.10.1 on Qt Creator so i thought i would stick to the same version.

                M Offline
                M Offline
                mrjj
                Lifetime Qt Champion
                wrote on 21 Jun 2018, 15:16 last edited by
                #13

                @ed-wright
                That is fine. Not an issue. just wanted to be clear up front as the
                compiling time is not trivial .)

                1 Reply Last reply
                1
                • E Offline
                  E Offline
                  ed-wright
                  wrote on 25 Jun 2018, 08:21 last edited by ed-wright
                  #14

                  I have been trying to compile the static version of Qt now and have run into a few issues.
                  Following http://doc.qt.io/qt-5/windows-building.html to try to build the
                  static version of Qt.

                  STEP 1
                  As i use Qt Creator and i have put the License into the prompt this step is
                  done

                  STEP 2
                  I already have a directory called C:\QT\Qt5.10.1, but from the downloads page
                  in my account i also have downloaded (Qt Source Package, Full Framework with
                  Windows style line endings ) and it is unpacked and located at C:\QT\qt-
                  everywhere-src-5.10.1, my project is currently using the first path.

                  STEP 3
                  With the environment variables, in my PATH i have
                  C:\QT\vs2015\qt5.6.1-64\5.6\msvc2015_64\bin, i do not think this is correct as
                  i want to be using 5.10.1 with msvs2015 so i think it needs to be.
                  C:\QT\Qt5.10.1\5.10.1\msvc2015_64\bin is this correct?

                  Anyway, following the guide my file qt5vars.cmd has the following:

                  REM Set up \Microsoft Visual Studio 14, where <arch> is \c amd64, \c
                  x86, etc.
                  CALL "C:\Program Files (x86)\Microsoft Visual Studio
                  14.0\VC\vcvarsall.bat" amd64
                  SET _ROOT=C:\QT\qt-everywhere-src-5.10.1
                  SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
                  REM Uncomment the below line when using a git checkout of the source
                  repository
                  REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
                  SET _ROOT=

                  NOTE: i am trying to use the downloaded (Qt Source Package, Full Framework
                  with Windows style line endings) not the normal 5.10.1 build.

                  NOTE2: This produces the following when running in the cmd off the shortcut on
                  the desktop:

                  C:\WINDOWS>REM Set up \Microsoft Visual Studio 14, where <arch> is \c
                  amd64, \c
                  x86, etc.

                  C:\WINDOWS>CALL "C:\Program Files (x86)\Microsoft Visual Studio
                  14.0\VC\vcvarsal
                  l.bat" amd64

                  STEP 4

                  Using the Developer Command Prompt for VS2015 i navigate to C:\QT\qt-
                  everywhere-src-5.10.1

                  and run the following configure -debug -nomake examples -nomake tests -skip
                  qtwebengine -opensource

                  i get the following errors

                  NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
                  Studio 14.0
                  \VC\BIN\cl.EXE"' : return code '0x2'

                  1 Reply Last reply
                  0
                  • E Offline
                    E Offline
                    ed-wright
                    wrote on 25 Jun 2018, 10:17 last edited by ed-wright
                    #15

                    @mrjj

                    Okay an update, Still not working but got a little further.

                    I have added the line:
                    set CL=/I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt"

                    to the file, C:\QT\qt-everywhere-src-5.10.1\configure.bat

                    it now progresses further BUT now i get this error:

                    LINK : fatal error LNK1104: cannot open file 'libucrt.lib'
                    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\link.EXE"' : return code '0x450'
                    Stop.

                    im trying to find libucrt.lib as we speak

                    M 1 Reply Last reply 26 Jun 2018, 06:37
                    0
                    • E ed-wright
                      25 Jun 2018, 10:17

                      @mrjj

                      Okay an update, Still not working but got a little further.

                      I have added the line:
                      set CL=/I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt"

                      to the file, C:\QT\qt-everywhere-src-5.10.1\configure.bat

                      it now progresses further BUT now i get this error:

                      LINK : fatal error LNK1104: cannot open file 'libucrt.lib'
                      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\link.EXE"' : return code '0x450'
                      Stop.

                      im trying to find libucrt.lib as we speak

                      M Offline
                      M Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on 26 Jun 2018, 06:37 last edited by
                      #16

                      Hi
                      Good work.
                      I have not seen that one before, but it seems to be related to static linking
                      https://stackoverflow.com/questions/35805113/visual-studio-2015-run-time-dependencies-or-how-to-get-rid-of-universal-crt

                      1 Reply Last reply
                      1
                      • E Offline
                        E Offline
                        ed-wright
                        wrote on 26 Jun 2018, 07:49 last edited by ed-wright
                        #17

                        @mrjj

                        Adding the following to my configure.bat located in the C:\QT\qt-everywhere-src-5.10.1 directory allowed me to overcome this problem.

                        set INCLUDE=%INCLUDE%;C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
                        set LIB=%LIB%;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x86
                        

                        Onto the next issue now.

                        I have successfully run the command

                        configure -debug -nomake examples -nomake tests -skip qtwebengine -opensource -static
                        

                        The next part of the guide states that the following command should be run.

                        nmake
                        

                        Once running it went for a few minutes and then produced the following error

                        Microsoft (R) Program Maintenance Utility Version 14.00.24210.0
                        Copyright (C) Microsoft Corporation.  All rights reserved.
                        
                                cl -c -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zi -MDd -utf-8 -W0 /Fd..\..\..\lib\qtpcre2d.pdb -DUNICODE -D_UNICODE -DWIN32 -DPCRE2_CODE_UNIT_WIDTH=16 -DPCRE2_STATIC -DQT_NO_NARROWING_CONVER
                        SIONS_IN_CONNECT -DHAVE_CONFIG_H -DQT_NO_DYNAMIC_CAST -DQT_NO_EXCEPTIONS -I. -Isrc -I..\..\..\mkspecs\win32-msvc -Fo.obj\debug\ @C:\Users\T0187208\AppData\Local\Temp\nmF7A.tmp
                        pcre2_auto_possess.c
                        pcre2_chartables.c
                        pcre2_compile.c
                        pcre2_config.c
                        pcre2_context.c
                        pcre2_dfa_match.c
                        pcre2_error.c
                        pcre2_find_bracket.c
                        pcre2_jit_compile.c
                        pcre2_maketables.c
                        pcre2_match.c
                        pcre2_match_data.c
                        pcre2_newline.c
                        pcre2_ord2utf.c
                        pcre2_pattern_info.c
                        pcre2_serialize.c
                        pcre2_string_utils.c
                        pcre2_study.c
                        pcre2_substitute.c
                        pcre2_substring.c
                        Generating Code...
                        Compiling...
                        pcre2_tables.c
                        pcre2_ucd.c
                        pcre2_valid_utf.c
                        pcre2_xclass.c
                        Generating Code...
                                lib /NOLOGO  /OUT:..\..\..\lib\qtpcre2d.lib @C:\Users\T0187208\AppData\Local\Temp\nm1B7D.tmp
                                cd corelib\ && ( if not exist Makefile C:\QT\qt-everywhere-src-5.10.1\qtbase\bin\qmake.exe -o Makefile C:\QT\qt-everywhere-src-5.10.1\qtbase\src\corelib\corelib.pro ) && "C:\Program Files (x86
                        )\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile
                        ASSERT: "isAbsolutePath(baseDir)" in file C:\QT\qt-everywhere-src-5.10.1\qtbase\qmake\library\ioutils.cpp, line 106
                        NMAKE : fatal error U1077: 'cd' : return code '0x3'
                        Stop.
                        NMAKE : fatal error U1077: 'cd' : return code '0x2'
                        Stop.
                        NMAKE : fatal error U1077: 'cd' : return code '0x2'
                        Stop.
                        

                        This is omitting some of the previous command line output that all worked correctly, this is where it crashed.

                        Do you have any idea?

                        1 Reply Last reply
                        0
                        • E Offline
                          E Offline
                          ed-wright
                          wrote on 26 Jun 2018, 12:47 last edited by
                          #18

                          So part of the problem was that my default prefix for the configure command was incorrect.

                          So going back and running the following worked.

                          configure -debug -nomake examples -nomake tests -skip qtwebengine -opensource -static -prefix C:\QT\qt-everywhere-src-5.10.1 -redo -recheck-all
                          

                          Then to Build

                          nmake
                          
                          1 Reply Last reply
                          1
                          • M Offline
                            M Offline
                            mrjj
                            Lifetime Qt Champion
                            wrote on 26 Jun 2018, 15:52 last edited by
                            #19

                            Super good work.
                            Thanks for updating on the way. will be helpful for others.

                            1 Reply Last reply
                            1

                            16/19

                            26 Jun 2018, 06:37

                            • Login

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