Я пытаюсь создать автономное приложение Qt без необходимости использовать DLL. Я перекомпилировал Qt 5.4.1 статически. Когда я компилирую и запускаю приложение, он не требует никаких Qt-библиотек DLL, но для этого требуется libgcc_s_dw2-1.dll. Я также редактировал мой mkspecs перед настройкой и построения Qt, я редактировал эти значения:Компиляция автономного приложения Qt с использованием MinGW
QMAKE_CFLAGS = -pipe -fno-keep-inline-dllexport -static -static-libgcc
QMAKE_CXXFLAGS = -pipe -fno-keep-inline-dllexport -static -static-libgcc -static-libstdc++
(добавлено -static -static-libstdC++ и -static-libgcc)
Я также добавил переменные окружения QMAKESPECS. Когда я что-то создаю с помощью Qt, я всегда вижу эти параметры в выходе, поэтому я уверен, что применяются mkspec. Когда я создаю программу без Qt с этими параметрами (-static -static-libgcc -static-libstdC++), при ее запуске ей не нужны библиотеки DLL.
Может кто-нибудь мне помочь? Я использую Qt 5.4.1 и MinGW-w64 4.9.2
Эти параметры должны препятствовать 'libgcc_s_dw2-1.dll', поэтому, скорее всего, ваш основной исполняемый файл или какая-либо внешняя dll не подхватили этот флаг. Можете ли вы использовать инструмент, подобный ходу зависимости, чтобы узнать, какая DLL/исполняемый файл в точности зависит от этой DLL? –
@RudolfsBundulis Я попытался просмотреть его в Dependency Walker сейчас, но кажется, что только сама программа зависит от libgcc, хотя я использовал упомянутые аргументы при компиляции. И это не зависит от какой-либо другой библиотеки, кроме Qt. Программа, которую я компилирую, очень проста, это всего лишь несколько строк кода. Я даже не использую никаких стандартных библиотек в программе (только Qt) – amethystAnt
Я не уверен, что вы имели в виду под libgcc - точную DLL, которую вы упомянули, или что-то еще? Вы также должны посмотреть на Qt dll с зависимым ходоком и, возможно, с Qt-плагинами, если вы используете любой, чтобы найти, какой файл точно загружает указанную DLL. Когда вы сами компилируете приложение, вы передаете статические библиотеки в качестве флагов компоновщика или нет? –