Название: 4.8.2 static build - не работает Отправлено: once_again_abc от Июнь 04, 2012, 04:24 Собрал 4.8.2 статик (через VS2010 env.): configure -debug -opensource -static -no-accessibility -no-qt3support -platform win32-msvc2010 -mp
Все ок. Подключаю в своем проекте QtCored.lib и QtGuid.lib В проекте указываю статическую сборку и получаю сперва несколько сотен варнингов типа таких: Код: .. Код: 1>.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall QString::QString(char const *)" (__imp_??0QString@@QAE@PBD@Z) Получается, что релиз неправильно собрался? С shared версией проблем нет. Название: Re: 4.8.2 static build - не работает Отправлено: kambala от Июнь 04, 2012, 11:48 configure -debug -opensource -static -no-accessibility -no-qt3support -platform win32-msvc2010 -mp Подключаю в своем проекте QtCored.lib и QtGuid.lib Получается, что релиз неправильно собрался? ты проект что ли в релиз конфигурации пытаешься собрать? слинковать его не получится.Название: Re: 4.8.2 static build - не работает Отправлено: once_again_abc от Июнь 05, 2012, 05:32 configure -debug -opensource -static -no-accessibility -no-qt3support -platform win32-msvc2010 -mp Подключаю в своем проекте QtCored.lib и QtGuid.lib Получается, что релиз неправильно собрался? ты проект что ли в релиз конфигурации пытаешься собрать? слинковать его не получится.почему не получится? пс. я перепробовал 4 возможных конфигурации билда (с соответствующими либами, в первом сообщении опечатка QtCore(d)): Код: configure -debug -shared Код: 1>.exe : fatal error LNK1120: 1136 unresolved externals и еще я заметил, что C:\4.8.2\mkspecs\win32-msvc2010\qmake.conf содержит вот эти флаги Код: QMAKE_CFLAGS_RELEASE = -O2 -MD Название: Re: 4.8.2 static build - не работает Отправлено: Serr500 от Июнь 05, 2012, 07:50 Попробуйте собрать с ключом -debug-and-release.
и еще я заметил, что C:\4.8.2\mkspecs\win32-msvc2010\qmake.conf содержит вот эти флаги Содержат. И что?Код: QMAKE_CFLAGS_RELEASE = -O2 -MD Подключаю в своем проекте QtCored.lib и QtGuid.lib Как подключаете?Название: Re: 4.8.2 static build - не работает Отправлено: once_again_abc от Июнь 05, 2012, 08:40 Попробуйте собрать с ключом -debug-and-release. какой в этом смысл? -debug-and-release судя по описанию делает абсолютно тоже что флаги -debug + -release и еще я заметил, что C:\4.8.2\mkspecs\win32-msvc2010\qmake.conf содержит вот эти флаги Код: QMAKE_CFLAGS_RELEASE = -O2 -MD я использую /MT, возможно в этом собака порылась, пока не проверял... Подключаю в своем проекте QtCored.lib и QtGuid.lib Как подключаете?как обычно - указываю в опциях линковщика в качестве входных библиотек =) линковщик успешно находит библиотеки, но почему-то с именами классов и методов не может разобраться. Название: Re: 4.8.2 static build - не работает Отправлено: Serr500 от Июнь 05, 2012, 09:12 -debug-and-release судя по описанию делает абсолютно тоже что флаги -debug + -release Если указать два флага, один из них конфигуратор, вроде бы, игнорирует.я использую /MT, возможно в этом собака порылась, пока не проверял... Разные флаги компиляции - лучший способ получить ошибки выполнения. Возможно, что и при линковке они вызывают ошибки.как обычно - указываю в опциях линковщика в качестве входных библиотек =) линковщик успешно находит библиотеки, но почему-то с именами классов и методов не может разобраться. Насколько я помню (давно не собирал статику) ничего линковщику указывать не надо. Достаточно добавить нужные модули в переменной QT в файле .pro и qmake сам сгенерирует правильный Makefile.Почему-то мне кажется, что у вас зоопарк различных сборок Qt и они при компиляции как-то перепутываются. Подозреваю, что qmake срабатывает от shared-сборки. Проверьте пути, переменную PATH и т.п. Название: Re: 4.8.2 static build - не работает Отправлено: once_again_abc от Июнь 05, 2012, 10:01 -debug-and-release судя по описанию делает абсолютно тоже что флаги -debug + -release Если указать два флага, один из них конфигуратор, вроде бы, игнорирует.я использую /MT, возможно в этом собака порылась, пока не проверял... Разные флаги компиляции - лучший способ получить ошибки выполнения. Возможно, что и при линковке они вызывают ошибки.как обычно - указываю в опциях линковщика в качестве входных библиотек =) линковщик успешно находит библиотеки, но почему-то с именами классов и методов не может разобраться. Насколько я помню (давно не собирал статику) ничего линковщику указывать не надо. Достаточно добавить нужные модули в переменной QT в файле .pro и qmake сам сгенерирует правильный Makefile.Почему-то мне кажется, что у вас зоопарк различных сборок Qt и они при компиляции как-то перепутываются. Подозреваю, что qmake срабатывает от shared-сборки. Проверьте пути, переменную PATH и т.п. с путями у меня все в порядке, со сборками тоже, все четыре разложены каждая по своим полочкам. и я не использую .pro, qmake и Makefile. все собираю в вижуал студии (стандартный Win32 проект), через его настройки. ладно, будет время, поковыряюсь еще в линковщике, вероятно с опциями что-то не так... Название: Re: 4.8.2 static build - не работает Отправлено: once_again_abc от Июнь 05, 2012, 15:02 если здесь есть люди, которые строят проект в вижуал студии и линкуются к статическим либам, прошу поделиться настрояками линкера.
Название: Re: 4.8.2 static build - не работает Отправлено: _OLEGator_ от Июнь 05, 2012, 15:08 Ты используешь QtCored.lib и QtGuid.lib и собираешь релизную сборку?
Название: Re: 4.8.2 static build - не работает Отправлено: once_again_abc от Июнь 05, 2012, 22:11 Ты используешь QtCored.lib и QtGuid.lib и собираешь релизную сборку? как я уже писал выше - нет, это была опечатка. для релизной статик версии использую QtCore.lib и QtGui.lib, для отладочной статик версии использую QtCored.lib и QtGuid.lib, для отладочной и релизной шаред - QtCored4.lib, QtGuid4.lib и QtCore4.lib и QtGui4.lib соответственно. шаред собирается без проблем. Название: Re: 4.8.2 static build - не работает Отправлено: OKTA от Июнь 20, 2012, 18:35 Может не совсем чего-то понимаю, но сегодня для mingw собрал статичускую версию без шума и пыли.
в qmake.conf добавил QMAKE_LFLAGS = -static ... И configure обязательно со -static -no-exceptions. p.s. даже openssl статически собрался))) |