LINUX.ORG.RU

Qt4. Компиляция static


0

0

Перекомпилировал КТ4 на static. Теперь MinGW не даёт компилировать программы. В чем дело вообще не пойму...

C:\Qt\4.3.3\bin\p>make mingw32-make -f Makefile.Debug all mingw32-make[1]: Entering directory `C:/Qt/4.3.3/bin/p' g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc -mthreads -Wl -Wl,-subsystem,windows -o debug\p.exe tmp/obj/debug_static/main .o -L"c:\Qt\4.3.3\lib" -L"c:\Qt\4.3.3\lib" -lmingw32 -lqtmaind -lQtGuid -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCored -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32 C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot fin d -lqtmaind collect2: ld returned 1 exit status mingw32-make[1]: *** [debug\p.exe] Error 1 mingw32-make[1]: Leaving directory `C:/Qt/4.3.3/bin/p' mingw32-make: *** [debug-all] Error 2

Я как понял он не находит ld.exe - что это и зачем? Как быть...

И как потом сделать так, чтобы не нужно было за собой таскать mingw10.dll?

anonymous

> Я как понял он не находит ld.exe - что это и зачем? Как быть...

ld - это линковщик...

smh ★★★
()

Чтобы собирать статические сборки, Qt сначала саму нужно собрать с флагом -static

troorl ★★
()

хм, -static -debug имхо не самое лучшее решение. :)

если уж статика, но только с -release

Adjkru ★★★★★
()

ld.exe он нашел. Я так понимаю ругается ld.exe на опцию -lqtmaind. Это линковка с библиотекой qtmaind. Судя по строкам "-lqtmaind -lQtGuid" он пытается линковаться с динамической версией QT, которой сейчас уже нет. Скорее всего нужно просто пересобрать проект qmake. Если не поможет, то скорее всего qmake цепляет не тот спек, его можно указать руками.

vgudkov
()
Ответ на: комментарий от vgudkov

> Судя по строкам "-lqtmaind -lQtGuid" он пытается линковаться с динамической версией QT, которой сейчас уже нет.

"d" означает не динамическую версию, а дебаговые либы. Которых, впрочем, тоже может не быть после пересборки qt с -static -release :)

Adjkru ★★★★★
()
Ответ на: комментарий от vgudkov

хотя вру бессовсетно... по -l он может и статическую библиотеку искать. => Возможные варианты: 1) не собрана debug версия qt 2) не пересобран проект 3) библиотек QT нет в путях линкера

vgudkov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.