Мне нужно создать 64-битную программу Qt5, которая ссылается на статические библиотеки .lib (скомпилированные с / MT). Я попытался изменить строки ниже с MD на MT:

QMAKE_CFLAGS_RELEASE    = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG      = -Zi –MTd

В файле D: \ Qt \ Qt5.0.0src \ qtbase \ mkspecs \ win32-msvc2010 \ qmake.conf

И перекомпилируя его с помощью

configure -prefix %CD%\qtbase -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop

А затем создать его, но это не удалось:

XPathGrammar.cpp
Generating Code...
        lib /NOLOGO  /OUT:release\WebCore.lib @C:\Users\Paul\AppData\Local\Temp\WebCore.lib.4480.3319717.jom
LINK : fatal error LNK1181: cannot open input file '.obj\release_shared\SettingsMacros.obj'
jom: D:\Qt\Qt5.0.0src\qtwebkit\Source\WebCore\Makefile.WebCore.Target.Release [release\WebCore.lib] Error 1181
jom: D:\Qt\Qt5.0.0src\qtwebkit\Source\WebCore\Makefile.WebCore.Target [release] Error 2
jom: D:\Qt\Qt5.0.0src\qtwebkit\Source\WebCore\Makefile.WebCore [sub-Target-pri-make_first-ordered] Error 2
jom: D:\Qt\Qt5.0.0src\qtwebkit\Makefile [sub-Source-WebCore-WebCore-pro-make_first-ordered] Error 2
jom: D:\Qt\Qt5.0.0src\Makefile [module-qtwebkit-make_first] Error 2

Похоже, что файл "SettingsMacros.obj" не создается. Это почему?

Нужно ли мне включать "-static" в строку конфигурации? Я знаю, что Qt не ладит с / MT, но в противном случае моему проекту он нужен. не сможет связать эти файлы .lib

0
Johnny Pauling 25 Янв 2013 в 19:03
Вы хотите, чтобы библиотеки qt (qtcore и т. д.) были статичными или существуют уже существующие библиотеки?
 – 
UmNyobe
25 Янв 2013 в 19:05
У меня есть файлы custom_library.lib (некоторые из них на C), и я хочу статически связать их с моей программой. Я попытался включить их в качестве внешних библиотек с Qt Creator, но это дало мне ошибки связывания из-за конфликтов MT / MD (ошибки crt)
 – 
Johnny Pauling
25 Янв 2013 в 19:08

1 ответ

Лучший ответ

Да, вам нужно добавить -static. Работал у меня.

1
kleopatra 27 Янв 2013 в 16:03