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. How to build Qt Share Lib With static runtime on windows?
Forum Updated to NodeBB v4.3 + New Features

How to build Qt Share Lib With static runtime on windows?

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
14 Posts 3 Posters 2.3k 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #2

    Hi,

    You have to modify the mkspec used for your project.

    However, you first have to rebuild all the libraries you are using to also link to the static run time (which means Qt as well).

    You can't mix both style (nothing to do with Qt).

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    J 1 Reply Last reply
    1
    • J Offline
      J Offline
      JohnDaYe
      wrote on last edited by
      #3

      VS 2013 complie QT 5.9.5 src error
      qeglplatformcontext.cpp(975) error C2466 array size can not be zero

      1 Reply Last reply
      0
      • SGaistS SGaist

        Hi,

        You have to modify the mkspec used for your project.

        However, you first have to rebuild all the libraries you are using to also link to the static run time (which means Qt as well).

        You can't mix both style (nothing to do with Qt).

        J Offline
        J Offline
        JohnDaYe
        wrote on last edited by JohnDaYe
        #4

        @SGaist
        VS 2013 complie QT 5.9.5 src error
        qeglplatformcontext.cpp(975) error C2466 array size can not be zero

        configure -prefix e:\Qt5.9.5 -opengl desktop -IE:\ICU\include -IE:\OpenSSL\include -LE:\OpenSSL\lib -LE:\ICU\lib -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -qt-sqlite -ssl -openssl-linked -opensource -confirm-license -nomake examples -nomake tests

        ICU and OPENSSL IS CONFIGURE OK

        qtbase\mkspecs\common\msvc-desktop.conf

        #
        # This file is used as a basis for the following compilers:
        #
        # - Microsoft C/C++ Optimizing Compiler (all desktop versions)
        # - Intel C++ Compiler on Windows
        # - Clang-cl
        #
        # Baseline:
        #
        # - Visual Studio 2005 (8.0), VC++ 14.0
        #
        # Version-specific settings go in msvc-version.conf (loaded by default_pre)
        #
        
        MAKEFILE_GENERATOR      = MSVC.NET
        QMAKE_PLATFORM          = win32
        QMAKE_COMPILER          = msvc
        CONFIG                 += flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe
        DEFINES                += UNICODE _UNICODE WIN32
        QMAKE_COMPILER_DEFINES += _WIN32
        contains(QMAKE_TARGET.arch, x86_64) {
            DEFINES += WIN64
            QMAKE_COMPILER_DEFINES += _WIN64
        }
        
        QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Od
        QMAKE_CFLAGS_OPTIMIZE      = -O2
        QMAKE_CFLAGS_OPTIMIZE_SIZE = -O1
        
        QMAKE_CC                = cl
        QMAKE_LEX               = flex
        QMAKE_LEXFLAGS          =
        QMAKE_YACC              = bison -y
        QMAKE_YACCFLAGS         = -d
        QMAKE_CFLAGS            = -nologo -Zc:wchar_t
        QMAKE_CFLAGS_WARN_ON    = -W3
        QMAKE_CFLAGS_WARN_OFF   = -W0
        QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MT
        QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MT
        QMAKE_CFLAGS_DEBUG      = -Zi -MTd
        QMAKE_CFLAGS_YACC       =
        QMAKE_CFLAGS_LTCG       = -GL
        
        contains(QMAKE_TARGET.arch, x86_64) {
            # SSE2 is mandatory on 64-bit mode, so skip the option. It triggers:
            # cl : Command line warning D9002 : ignoring unknown option '-arch:SSE2'
            QMAKE_CFLAGS_SSE2   =
        } else {
            QMAKE_CFLAGS_SSE2   = -arch:SSE2
        }
        QMAKE_CFLAGS_SSE3       = $$QMAKE_CFLAGS_SSE2
        QMAKE_CFLAGS_SSSE3      = $$QMAKE_CFLAGS_SSE2
        QMAKE_CFLAGS_SSE4_1     = $$QMAKE_CFLAGS_SSE2
        QMAKE_CFLAGS_SSE4_2     = $$QMAKE_CFLAGS_SSE2
        
        QMAKE_CXX               = $$QMAKE_CC
        QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS
        QMAKE_CXXFLAGS_WARN_ON  = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189 -w44996
        QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
        QMAKE_CXXFLAGS_RELEASE  = $$QMAKE_CFLAGS_RELEASE
        QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
        QMAKE_CXXFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG
        QMAKE_CXXFLAGS_YACC     = $$QMAKE_CFLAGS_YACC
        QMAKE_CXXFLAGS_LTCG     = $$QMAKE_CFLAGS_LTCG
        QMAKE_CXXFLAGS_STL_ON   = -EHsc
        QMAKE_CXXFLAGS_STL_OFF  =
        QMAKE_CXXFLAGS_RTTI_ON  = -GR
        QMAKE_CXXFLAGS_RTTI_OFF =
        QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
        QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
        
        QMAKE_INCDIR            =
        
        QMAKE_RUN_CC            = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
        QMAKE_RUN_CC_IMP        = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
        QMAKE_RUN_CC_IMP_BATCH  = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
        QMAKE_RUN_CXX           = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
        QMAKE_RUN_CXX_IMP       = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
        QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
        
        QMAKE_LINK              = link
        QMAKE_LFLAGS            = /NOLOGO /DYNAMICBASE /NXCOMPAT icudt.lib icuin.lib icuio.lib icule.lib iculx.lib icutu.lib icuuc.lib
        QMAKE_LFLAGS_RELEASE    = /INCREMENTAL:NO icudt.lib icuin.lib icuio.lib icule.lib iculx.lib icutu.lib icuuc.lib
        QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF /INCREMENTAL:NO
        QMAKE_LFLAGS_DEBUG      = /DEBUG
        QMAKE_LFLAGS_CONSOLE    = /SUBSYSTEM:CONSOLE
        QMAKE_LFLAGS_WINDOWS    = /SUBSYSTEM:WINDOWS
        QMAKE_LFLAGS_EXE        = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
        QMAKE_LFLAGS_DLL        = /DLL
        QMAKE_LFLAGS_LTCG       = /LTCG
        QMAKE_PREFIX_SHLIB      =
        QMAKE_EXTENSION_SHLIB   = dll
        QMAKE_PREFIX_STATICLIB  =
        QMAKE_EXTENSION_STATICLIB = lib
        
        QMAKE_LIBS              =
        QMAKE_LIBS_GUI          = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib uuid.lib user32.lib advapi32.lib
        QMAKE_LIBS_NETWORK      = ws2_32.lib
        QMAKE_LIBS_OPENGL       = glu32.lib opengl32.lib gdi32.lib user32.lib
        QMAKE_LIBS_OPENGL_ES2   = gdi32.lib user32.lib
        QMAKE_LIBS_OPENGL_ES2_DEBUG = gdi32.lib user32.lib
        QMAKE_LIBS_COMPAT       = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib
        QMAKE_LIBS_QT_ENTRY     = -lqtmain
        
        QMAKE_IDL               = midl /NOLOGO
        QMAKE_LIB               = lib /NOLOGO
        QMAKE_RC                = rc /NOLOGO
        
        VCPROJ_EXTENSION        = .vcproj
        VCSOLUTION_EXTENSION    = .sln
        VCPROJ_KEYWORD          = Qt4VSv1.0
        
        include(angle.conf)
        
        
        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #5

          Are you tied to VS2013 ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          J 1 Reply Last reply
          0
          • SGaistS SGaist

            Are you tied to VS2013 ?

            J Offline
            J Offline
            JohnDaYe
            wrote on last edited by
            #6

            @SGaist
            YES
            I tried build with vs2013

            jsulmJ 1 Reply Last reply
            0
            • J JohnDaYe

              @SGaist
              YES
              I tried build with vs2013

              jsulmJ Online
              jsulmJ Online
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #7

              @JohnDaYe tied not tried :-)
              The question was: do you have to use this old VS2013? Or could you upgrade to a newer version?

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              J 1 Reply Last reply
              1
              • jsulmJ jsulm

                @JohnDaYe tied not tried :-)
                The question was: do you have to use this old VS2013? Or could you upgrade to a newer version?

                J Offline
                J Offline
                JohnDaYe
                wrote on last edited by
                #8

                @jsulm i build vs2017 ok
                but we need vs2013 ver

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #9

                  Just in case, can you try to build the latest version of the 5.9 series ? It's 5.9.7.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  J 2 Replies Last reply
                  0
                  • SGaistS SGaist

                    Just in case, can you try to build the latest version of the 5.9 series ? It's 5.9.7.

                    J Offline
                    J Offline
                    JohnDaYe
                    wrote on last edited by
                    #10

                    @SGaist I Will try it
                    thanks

                    1 Reply Last reply
                    0
                    • SGaistS SGaist

                      Just in case, can you try to build the latest version of the 5.9 series ? It's 5.9.7.

                      J Offline
                      J Offline
                      JohnDaYe
                      wrote on last edited by
                      #11

                      @SGaist
                      it is will occurs when i configure with "-opengl desktop"

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #12

                        Same file as before ?

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        J 1 Reply Last reply
                        0
                        • SGaistS SGaist

                          Same file as before ?

                          J Offline
                          J Offline
                          JohnDaYe
                          wrote on last edited by
                          #13

                          @SGaist Yes

                          1 Reply Last reply
                          0
                          • SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #14

                            @JohnDaYe said in How to build Qt Share Lib With static runtime on windows?:

                            qeglplatformcontext.cpp

                            Any chance that you have neither QT_OPENGL_ES_XXX macro defined ?

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            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