Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Use "configure -static -release -no-exceptions" with QT 5.6 is impossible



  • Hi

    I would build a application static with QT 5.6 on window seven.

    I have looked "C:\Qt\5.6\mingw49_32\mkspecs\win32-g++" and "C:\Qt\5.6\mingw49_32\bin\qtenv2.bat" but I not have possibility to use command "configure " in "cmd.exe" with "qtenv2.bat".

    Do you can explain step by step how to make a application static ?

    I am French so, excuse my for my English.

    "cmd.exe" with "qtenv2.bat" :

    C:\Qt\5.6\mingw49_32\bin>qtenv2.bat
    Setting up environment for Qt usage...
    
    C:\Qt\5.6\mingw49_32>configure /?
    'configure' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    

    C:\Qt\5.6\mingw49_32\mkspecs\win32-g++:

    #
    # qmake configuration for win32-g++
    #
    # Written for MinGW / gcc 4.6 or higher
    #
    # Cross compile example for i686-w64-mingw32-g++:
    #   configure -xplatform win32-g++ -device-option CROSS_COMPILE=i686-w64-mingw32-
    #
    
    load(device_config)
    include(../common/angle.conf)
    
    MAKEFILE_GENERATOR      = MINGW
    QMAKE_PLATFORM          = win32 mingw
    CONFIG                 += debug_and_release debug_and_release_target precompile_header
    DEFINES                += UNICODE
    QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
    
    QMAKE_EXT_OBJ           = .o
    QMAKE_EXT_RES           = _res.o
    
    QMAKE_COMPILER          = gcc
    
    QMAKE_CC                = $${CROSS_COMPILE}gcc
    QMAKE_LEX               = flex
    QMAKE_LEXFLAGS          =
    QMAKE_YACC              = bison -y
    QMAKE_YACCFLAGS         = -d
    QMAKE_CFLAGS            = -pipe -fno-keep-inline-dllexport
    QMAKE_CFLAGS_DEPS       = -M
    QMAKE_CFLAGS_WARN_ON    = -Wall -Wextra
    QMAKE_CFLAGS_WARN_OFF   = -w
    QMAKE_CFLAGS_RELEASE    = -O2
    QMAKE_CFLAGS_DEBUG      = -g
    QMAKE_CFLAGS_YACC       = -Wno-unused -Wno-parentheses
    QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections
    QMAKE_CFLAGS_SSE2       = -msse2 -mstackrealign
    QMAKE_CFLAGS_SSE3       = -msse3
    QMAKE_CFLAGS_SSSE3      = -mssse3
    QMAKE_CFLAGS_SSE4_1     = -msse4.1
    QMAKE_CFLAGS_SSE4_2     = -msse4.2
    QMAKE_CFLAGS_AVX        = -mavx
    QMAKE_CFLAGS_AVX2       = -mavx2
    QMAKE_CFLAGS_NEON       = -mfpu=neon
    
    QMAKE_CXX               = $${CROSS_COMPILE}g++
    QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS
    QMAKE_CXXFLAGS_DEPS     = $$QMAKE_CFLAGS_DEPS
    QMAKE_CXXFLAGS_WARN_ON  = $$QMAKE_CFLAGS_WARN_ON
    QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
    QMAKE_CXXFLAGS_RELEASE  = $$QMAKE_CFLAGS_RELEASE
    QMAKE_CXXFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG
    QMAKE_CXXFLAGS_YACC     = $$QMAKE_CFLAGS_YACC
    QMAKE_CXXFLAGS_THREAD   = $$QMAKE_CFLAGS_THREAD
    QMAKE_CXXFLAGS_RTTI_ON  = -frtti
    QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
    QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
    QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
    QMAKE_CXXFLAGS_CXX11    = -std=c++0x
    QMAKE_CXXFLAGS_CXX14    = -std=c++1y
    QMAKE_CXXFLAGS_CXX1Z    = -std=c++1z
    QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++0x
    QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y
    QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z
    QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS
    
    QMAKE_INCDIR            =
    
    QMAKE_RUN_CC            = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
    QMAKE_RUN_CC_IMP        = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
    QMAKE_RUN_CXX           = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
    QMAKE_RUN_CXX_IMP       = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
    
    QMAKE_LINK              = $${CROSS_COMPILE}g++
    QMAKE_LINK_C            = $${CROSS_COMPILE}gcc
    QMAKE_LFLAGS            =
    QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
    QMAKE_LFLAGS_EXCEPTIONS_OFF =
    QMAKE_LFLAGS_RELEASE    = -Wl,-s
    QMAKE_LFLAGS_DEBUG      =
    QMAKE_LFLAGS_CONSOLE    = -Wl,-subsystem,console
    QMAKE_LFLAGS_WINDOWS    = -Wl,-subsystem,windows
    QMAKE_LFLAGS_DLL        = -shared
    QMAKE_LFLAGS_CXX11      =
    QMAKE_LFLAGS_CXX14      =
    QMAKE_LFLAGS_CXX1Z      =
    QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections
    QMAKE_LINK_OBJECT_MAX   = 10
    QMAKE_LINK_OBJECT_SCRIPT = object_script
    QMAKE_PREFIX_SHLIB      =
    QMAKE_EXTENSION_SHLIB   = dll
    QMAKE_PREFIX_STATICLIB  = lib
    QMAKE_EXTENSION_STATICLIB = a
    QMAKE_LIB_EXTENSIONS    = a dll.a
    
    QMAKE_LIBS              =
    QMAKE_LIBS_CORE         = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32
    QMAKE_LIBS_GUI          = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32
    QMAKE_LIBS_NETWORK      = -lws2_32
    QMAKE_LIBS_OPENGL       = -lglu32 -lopengl32 -lgdi32 -luser32
    QMAKE_LIBS_OPENGL_ES2   = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} -lgdi32 -luser32
    QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBEGL_NAME}d -l$${LIBGLESV2_NAME}d -lgdi32 -luser32
    QMAKE_LIBS_COMPAT       = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
    QMAKE_LIBS_QT_ENTRY     = -lmingw32 -lqtmain
    
    QMAKE_IDL               = midl
    QMAKE_LIB               = $${CROSS_COMPILE}ar -ru
    QMAKE_RC                = $${CROSS_COMPILE}windres
    
    QMAKE_STRIP             = $${CROSS_COMPILE}strip
    QMAKE_STRIPFLAGS_LIB   += --strip-unneeded
    QMAKE_OBJCOPY           = $${CROSS_COMPILE}objcopy
    QMAKE_NM                = $${CROSS_COMPILE}nm -P
    load(qt_config)
    
    

    "C:\Qt\5.6\mingw49_32\bin\qtenv2.bat":

    echo off
    echo Setting up environment for Qt usage...
    set PATH=C:\Qt\5.6\mingw49_32\bin;C:\Qt\Tools\mingw492_32\bin;%PATH%
    cd /D C:\Qt\5.6\mingw49_32
    
    

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    If you want to rebuild Qt statically then you must first download the sources.

    Don't forget that using a static build of Qt as licensing constraints that you have to abide to.


Log in to reply