Unsolved How to build Qt Share Lib With static runtime on windows?
-
How to build Qt Share Lib With static runtime on windows?
-
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).
-
VS 2013 complie QT 5.9.5 src error
qeglplatformcontext.cpp(975) error C2466 array size can not be zero -
@SGaist
VS 2013 complie QT 5.9.5 src error
qeglplatformcontext.cpp(975) error C2466 array size can not be zeroconfigure -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)
-
Are you tied to VS2013 ?
-
@SGaist
YES
I tried build with vs2013 -
@JohnDaYe tied not tried :-)
The question was: do you have to use this old VS2013? Or could you upgrade to a newer version? -
@jsulm i build vs2017 ok
but we need vs2013 ver -
Just in case, can you try to build the latest version of the 5.9 series ? It's 5.9.7.
-
@SGaist I Will try it
thanks -
@SGaist
it is will occurs when i configure with "-opengl desktop" -
Same file as before ?
-
@SGaist Yes
-
@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 ?