Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: NkuNLANfT от Декабрь 15, 2009, 21:42



Название: Статическая сборка Qt, vs2008.
Отправлено: NkuNLANfT от Декабрь 15, 2009, 21:42
Здравствуйте.
Пытаюсь собрать Qt 4.6 для VS2008, параметры конфигурации:
configure -debug-and-release -qt-libpng -qt-libjpeg -static -platform win32-msvc2008 -no-phonon -no-webkit -no-phonon-backend -plugin-sql-odbc -plugin-sql-sqlite -no-sql-sqlite -qt-zlib -qt-gif -qt-libmng -qt-libtiff

Сборка заканчивается ошибками:
Код:
moc_qtdocinstaller.cpp
moc_remotecontrol_win.cpp
Generating Code...
        cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MTd -W3 -w34100 -w34189 -GR -EHsc
 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DUSE_STATIC_SQLITE_PLUGIN -DQT_SQL_LI
B -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -
I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtNetwork" -I"..\..\..\..\i
nclude\QtGui" -I"..\..\..\..\include\QtXml" -I"..\..\..\..\include\QtSql" -I"..\
..\..\..\include" -I"..\..\..\..\include\QtHelp" -I"..\..\..\shared\fontpanel" -
I"..\..\..\..\include\ActiveQt" -I"tmp\moc\debug_static" -I"." -I"..\..\..\..\mk
specs\win32-msvc2008" -Fotmp\obj\debug_static\ @C:\DOCUME~1\9335~1\LOCALS~1\Temp
\nm638.tmp
qrc_assistant.cpp
qrc_assistant_images.cpp
Generating Code...
        link /LIBPATH:"d:\Qt\qt-vc-4.6.0\lib" /LIBPATH:"d:\Qt\qt-vc-4.6.0\lib" /
NOLOGO /DEBUG /MANIFEST /MANIFESTFILE:"tmp\obj\debug_static\assistant.intermedia
te.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsof
t.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' l
anguage='*' processorArchitecture='*'" /OUT:..\..\..\..\bin\assistant.exe @C:\DO
CUME~1\9335~1\LOCALS~1\Temp\nm639.tmp
main.obj : error LNK2019: unresolved external symbol "class QObject * __cdecl qt
_plugin_instance_qsqlite(void)" (?qt_plugin_instance_qsqlite@@YAPAVQObject@@XZ)
referenced in function "public: __thiscall StaticqsqlitePluginInstance::Staticqs
qlitePluginInstance(void)" (??0StaticqsqlitePluginInstance@@QAE@XZ)
..\..\..\..\bin\assistant.exe : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"D:\Microsoft Visual Studio 9.0\VC\BIN\link.EXE"' :
return code '0x460'
Stop.
NMAKE : fatal error U1077: '"D:\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' :
 return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

D:\Qt\qt-vc-4.6.0>
Подскажите пожалуйста, что не так делаю.
Кстати, почему-то у меня параметр -no-assistant-webkit не хочет работать (unknown option).
С меньшим набором параметров (configure -debug-and-release -static) тоже были ошибки.

Добавю, что в соответствии с рекомендациями вот тут (http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MS_Visual_Studio%29) правил файлы.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: crackedmind от Декабрь 16, 2009, 04:39
Код:
-plugin-sql-sqlite -no-sql-sqlite
Что это? сначала разрешаете плагин sqlite, а потом запрещаете? :)

Поэтому сборка и трещит, ассистенту нужен этот плагин

-no-assistant-webkit
C 4.5 такой опции не существует...


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: NkuNLANfT от Декабрь 16, 2009, 05:49
Что это? сначала разрешаете плагин sqlite, а потом запрещаете? :)
Да это я где-то подсмотрел, сам, если честно, мягко говоря, новичок в этом деле. Но, к сожалению, проблема не в этом. Пробовал с другим набором параметров:
Код:
configure -static -debug-and-release -platform win32-msvc2008 -qt-libpng -qt-libjpeg -qt-zlib -qt-gif -qt-libmng -qt-libtiff
Результат:
Код:
        D:\Qt\4.6.0\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DPHONO
N_MAKE_QT_ONLY_BACKEND -DQT_STATICPLUGIN -DQT_PLUGIN -DQT_PHONON_LIB -DQT_GUI_LI
B -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\.
.\include\QtGui" -I"..\..\..\..\include\phonon" -I"..\..\..\..\include" -I"..\..
\..\..\include\ActiveQt" -I"..\..\..\..\include\phonon_compat\phonon" -I"..\..\.
.\..\include\phonon_compat" -I"..\..\..\..\include\phonon\Phonon" -I"tmp\moc\deb
ug_static" -I"..\..\..\..\mkspecs\win32-msvc2008" -D_MSC_VER=1500 -DWIN32 ..\..\
..\3rdparty\phonon\ds9\mediaobject.h -o tmp\moc\debug_static\moc_mediaobject.cpp

        D:\Qt\4.6.0\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DPHONO
N_MAKE_QT_ONLY_BACKEND -DQT_STATICPLUGIN -DQT_PLUGIN -DQT_PHONON_LIB -DQT_GUI_LI
B -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\.
.\include\QtGui" -I"..\..\..\..\include\phonon" -I"..\..\..\..\include" -I"..\..
\..\..\include\ActiveQt" -I"..\..\..\..\include\phonon_compat\phonon" -I"..\..\.
.\..\include\phonon_compat" -I"..\..\..\..\include\phonon\Phonon" -I"tmp\moc\deb
ug_static" -I"..\..\..\..\mkspecs\win32-msvc2008" -D_MSC_VER=1500 -DWIN32 ..\..\
..\3rdparty\phonon\ds9\videowidget.h -o tmp\moc\debug_static\moc_videowidget.cpp

        D:\Qt\4.6.0\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DPHONO
N_MAKE_QT_ONLY_BACKEND -DQT_STATICPLUGIN -DQT_PLUGIN -DQT_PHONON_LIB -DQT_GUI_LI
B -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\.
.\include\QtGui" -I"..\..\..\..\include\phonon" -I"..\..\..\..\include" -I"..\..
\..\..\include\ActiveQt" -I"..\..\..\..\include\phonon_compat\phonon" -I"..\..\.
.\..\include\phonon_compat" -I"..\..\..\..\include\phonon\Phonon" -I"tmp\moc\deb
ug_static" -I"..\..\..\..\mkspecs\win32-msvc2008" -D_MSC_VER=1500 -DWIN32 ..\..\
..\3rdparty\phonon\ds9\volumeeffect.h -o tmp\moc\debug_static\moc_volumeeffect.c
pp
        cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MTd -GR -EHsc -W3 -w34100 -w34189
 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DPHONON_MAKE_QT_ONLY_BACKEND -DQT_STA
TICPLUGIN -DQT_PLUGIN -DQT_PHONON_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUP
PORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtGui" -I"..\..\..\..
\include\phonon" -I"..\..\..\..\include" -I"..\..\..\..\include\ActiveQt" -I"..\
..\..\..\include\phonon_compat\phonon" -I"..\..\..\..\include\phonon_compat" -I"
..\..\..\..\include\phonon\Phonon" -I"tmp\moc\debug_static" -I"..\..\..\..\mkspe
cs\win32-msvc2008" -Fotmp\obj\debug_static\ @C:\DOCUME~1\9335~1\LOCALS~1\Temp\nm
38C.tmp
abstractvideorenderer.cpp
audiooutput.cpp
backend.cpp
..\..\..\3rdparty\phonon\ds9\backend.cpp(69) : error C2227: left of '->m_directS
howMutex' must point to class/struct/union/generic type
..\..\..\3rdparty\phonon\ds9\backend.cpp(69) : error C3861: 'qt_plugin_instance'
: identifier not found
backendnode.cpp
effect.cpp
fakesource.cpp
iodevicereader.cpp
mediagraph.cpp
mediaobject.cpp
videowidget.cpp
videorenderer_soft.cpp
videorenderer_vmr9.cpp
volumeeffect.cpp
qbasefilter.cpp
qpin.cpp
qasyncreader.cpp
qaudiocdreader.cpp
qmeminputpin.cpp
Generating Code...
NMAKE : fatal error U1077: '"D:\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : re
turn code '0x2'
Stop.
NMAKE : fatal error U1077: '"D:\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' :
 return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

D:\Qt\4.6.0>


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: crackedmind от Декабрь 16, 2009, 08:10
Это баг в Phonon'e. В 4.6.1 пофиксили его. Можно либо версию из гита взять :) либо исключить из сборки phonon...


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: NkuNLANfT от Декабрь 16, 2009, 16:35
Код:
configure -static -debug-and-release -platform win32-msvc2008 -qt-libpng -qt-libjpeg -qt-zlib -qt-gif -qt-libmng -qt-libtiff -no-phonon -no-phono-backend
Таким образом я исключаю phonon, так? Получается вот, что:
Код:
moc_remotecontrol.cpp
moc_aboutdialog.cpp
moc_qtdocinstaller.cpp
moc_remotecontrol_win.cpp
Generating Code...
        cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MTd -W3 -w34100 -w34189 -GR -EHsc
 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DUSE_STATIC_SQLITE_PLUGIN -DQT_WEBKIT
_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_
THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtNetwork"
-I"..\..\..\..\include\QtGui" -I"..\..\..\..\include\QtXml" -I"..\..\..\..\inclu
de\QtSql" -I"..\..\..\..\include\QtWebKit" -I"..\..\..\..\include" -I"..\..\..\.
.\include\QtHelp" -I"..\..\..\shared\fontpanel" -I"..\..\..\..\include\ActiveQt"
 -I"tmp\moc\debug_static" -I"." -I"..\..\..\..\mkspecs\win32-msvc2008" -Fotmp\ob
j\debug_static\ @C:\DOCUME~1\9335~1\LOCALS~1\Temp\nm29B.tmp
qrc_assistant.cpp
qrc_assistant_images.cpp
Generating Code...
        link /LIBPATH:"d:\Qt\4.6.0\lib" /LIBPATH:"d:\Qt\4.6.0\lib" /NOLOGO /DEBU
G /MANIFEST /MANIFESTFILE:"tmp\obj\debug_static\assistant.intermediate.manifest"
 /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Co
mmon-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*'
processorArchitecture='*'" /OUT:..\..\..\..\bin\assistant.exe @C:\DOCUME~1\9335~
1\LOCALS~1\Temp\nm29C.tmp
   Creating library ..\..\..\..\bin\assistant.lib and object ..\..\..\..\bin\ass
istant.exp
main.obj : error LNK2019: unresolved external symbol "class QObject * __cdecl qt
_plugin_instance_qsqlite(void)" (?qt_plugin_instance_qsqlite@@YAPAVQObject@@XZ)
referenced in function "public: __thiscall StaticqsqlitePluginInstance::Staticqs
qlitePluginInstance(void)" (??0StaticqsqlitePluginInstance@@QAE@XZ)
..\..\..\..\bin\assistant.exe : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"D:\Microsoft Visual Studio 9.0\VC\BIN\link.EXE"' :
return code '0x460'
Stop.
NMAKE : fatal error U1077: '"D:\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' :
 return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

D:\Qt\4.6.0>
Посоветуйте, пожалуйста, что-то ещё.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Mikhail от Декабрь 16, 2009, 18:03
Все повторить по новой в новом каталоге Qt.
И при статической компиляции Qt не следует использовать опции типа -plugin-sql-sqlite.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: NkuNLANfT от Декабрь 16, 2009, 18:07
Последние два раза такие опции и не использовал, но попробую ещё раз.

Попробовал:
Код:
moc_remotecontrol.cpp
moc_aboutdialog.cpp
moc_qtdocinstaller.cpp
moc_remotecontrol_win.cpp
Generating Code...
        cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MTd -W3 -w34100 -w34189 -GR -EHsc
 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DUSE_STATIC_SQLITE_PLUGIN -DQT_WEBKIT
_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_
THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtNetwork"
-I"..\..\..\..\include\QtGui" -I"..\..\..\..\include\QtXml" -I"..\..\..\..\inclu
de\QtSql" -I"..\..\..\..\include\QtWebKit" -I"..\..\..\..\include" -I"..\..\..\.
.\include\QtHelp" -I"..\..\..\shared\fontpanel" -I"..\..\..\..\include\ActiveQt"
 -I"tmp\moc\debug_static" -I"." -I"..\..\..\..\mkspecs\win32-msvc2008" -Fotmp\ob
j\debug_static\ @C:\DOCUME~1\9335~1\LOCALS~1\Temp\nm283.tmp
qrc_assistant.cpp
qrc_assistant_images.cpp
Generating Code...
        link /LIBPATH:"d:\Qt\4.6.0-vs2008\lib" /LIBPATH:"d:\Qt\4.6.0-vs2008\lib"
 /NOLOGO /DEBUG /MANIFEST /MANIFESTFILE:"tmp\obj\debug_static\assistant.intermed
iate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Micros
oft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df'
 language='*' processorArchitecture='*'" /OUT:..\..\..\..\bin\assistant.exe @C:\
DOCUME~1\9335~1\LOCALS~1\Temp\nm284.tmp
   Creating library ..\..\..\..\bin\assistant.lib and object ..\..\..\..\bin\ass
istant.exp
main.obj : error LNK2019: unresolved external symbol "class QObject * __cdecl qt
_plugin_instance_qsqlite(void)" (?qt_plugin_instance_qsqlite@@YAPAVQObject@@XZ)
referenced in function "public: __thiscall StaticqsqlitePluginInstance::Staticqs
qlitePluginInstance(void)" (??0StaticqsqlitePluginInstance@@QAE@XZ)
..\..\..\..\bin\assistant.exe : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"D:\Microsoft Visual Studio 9.0\VC\BIN\link.EXE"' :
return code '0x460'
Stop.
NMAKE : fatal error U1077: '"D:\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' :
 return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

D:\Qt\4.6.0-vs2008>
При этом Qt удалял и ставил заново. Может я что-то упускаю? Опишу свои действия:
1. Скачиваю qt-win-opensource-4.6.0-vs2008.exe, устанавливаю (не на системный диск, но разве это имеет значение?).
2. Вношу измения в файлы, как описано тут (http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MS_Visual_Studio%29) (второй способ).
3. Visual Studio 2008 command promt, перехожу в папку с Qt, configure с параметрами:
Код:
-static -debug-and-release -platform win32-msvc2008 -qt-libpng -qt-libjpeg -qt-zlib -qt-gif -qt-libmng -qt-libtiff
-no-phonon -no-phonon-backend
4. nmake, через несколько часов получаю ошибки.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: NkuNLANfT от Декабрь 17, 2009, 03:45
Прошу прощения за то, что апаю топик, но уже не знаю, что делать, гуглить пробовал - подходящих советов не нашел, у самого идей нет.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Mikhail от Декабрь 17, 2009, 08:54
Читаем файл INSTALL:

If you need to reconfigure and rebuild Qt from the same location,
    ensure that all traces of the previous configuration are removed
    by entering the build directory and typing

        nmake confclean

    before running the configure script again.

Выполни перед configure очистку конфигурации - после установки с использованием qt-win-opensource-4.6.0-vs2008.exe.

В опциях конфигурации вместо -debug-and-release используй -release


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: lit-uriy от Декабрь 17, 2009, 10:11
Михаил, если пользоваться установщиком, то мэйкфайла не будет (до запуска configure), т.е. если Qt именно установили на чисто, то в первый раз просто запускается configure, а вот перед последующими переконфигурациями нужно запускать {n}make confclean


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Dendy от Декабрь 17, 2009, 10:34
Да, и если вам лично этот SQLite не нужен, то совершенно нет надобности пересобирать всю библиотеку. После конфигурации делаете:

Код
Bash
cd src/tools
nmake
cd ../corelib
nmake
cd ../gui
nmake
 

И так далее, собираете только то, что вам нужно. Порядок не важен, ибо исполняемые файлы не создаются (кроме тех что в src/tools, но вы и их можете не собирать - просто скопируйте moc, rcc и uic из уже готовой сборки). И правда ведь, зачем вам Ассистант и прочий инструментарий в статической сборке.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: NkuNLANfT от Декабрь 18, 2009, 00:23
Да, и если вам лично этот SQLite не нужен, то совершенно нет надобности пересобирать всю библиотеку.
Большое спасибо, собирать по частям я не догадался.

В опциях конфигурации вместо -debug-and-release используй -release
Можно узнать почему? Я так и сделал и, вроде, примерно понимаю разницу, но на это есть какие-то причины или нет?

И ещё два глупых вопроса:
Решил книгу по Qt почитать, нашел "Qт 4 программирование GUI на С++" под авторством Бланшет и Саммерфилд. Первые два простых примерах (надпись и кнопка) - всё ок, а вот третий пример показывающий синхронизацию двух виджетов почему-то не работает как надо.
Код:
#include <QtGui/QApplication>

#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QWidget *window = new QWidget;
window->setWindowTitle("test");
QSpinBox *spinBox = new QSpinBox;
QSlider *slider = new QSlider(Qt::Horizontal);
spinBox->setRange(0, 130);
slider->setRange(0, 130);
QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValude(int)));
QObject::connect(slider, SIGNAL(valudeChanged(int)), spinBox, SLOT(setValude(int)));
spinBox->setValue(35);

QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(spinBox);
layout->addWidget(slider);
window->setLayout(layout);
window->show();

return app.exec();
}
Программа компилируется и запускается, но слайдер и спинбокс не взаимодействуют и изначально положение слайдера не соответствует значению в спинбоксе. Что не так?

Второй вопрос - размер программы 5,45 мб - это нормально?


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Dendy от Декабрь 18, 2009, 00:42
Код:
	QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValude(int)));
QObject::connect(slider, SIGNAL(valudeChanged(int)), spinBox, SLOT(setValude(int)));

valude - три раза. При запуске с консоли должно посыпать ошибками, что таких сигналов/слотов нет. Будьте бдительны.

Второй вопрос - размер программы 5,45 мб - это нормально?

Для статической сборки, а тем более для дебажной - да.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: NkuNLANfT от Декабрь 18, 2009, 01:02
valude - три раза.
Действительно... аж стыдно, что такую глупость проглядел.

При запуске с консоли должно посыпать ошибками, что таких сигналов/слотов нет. Будьте бдительны.
Я почему-то ожидал, что студия будет указывать на ошибки, этого и не должно быть?

Для статической сборки, а тем более для дебажной - да.
А как мне собрать релизную версию?


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: crackedmind от Декабрь 18, 2009, 01:36
nmake release например :)


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Dendy от Декабрь 18, 2009, 02:03
Я почему-то ожидал, что студия будет указывать на ошибки, этого и не должно быть?

Соединение сигналов и слотов происходит в рантайме, компилятор ошибку в сигнатуре определить не может. Собирайте консольные проекты для дебага - там в выводе увидите ошибку как только выполнение программы дойдёт до неверного соединения сигналов/слотов. Или воспользуйтесь qInstallMsgHandler(), чтобы перехватить сообщение об ошибке в свою функцию.

А как мне собрать релизную версию?

Если не указывали явно тип сборки Debug при configure - то можно просто вызвать: nmake -f Makefile.Release в корне Qt.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: crackedmind от Декабрь 18, 2009, 02:39
Dendy
Файл не обязательно указывать то. Достаточно цель для сборки :) обрабатывается Makefile и передается управление в Makefile.Release (или Debug) :)


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: NkuNLANfT от Декабрь 18, 2009, 02:41
Если не указывали явно тип сборки Debug при configure - то можно просто вызвать: nmake -f Makefile.Release в корне Qt.
Правильно я понимаю, что если при конфигурации указал -release (а не -debug-and-release или -debug), то в любом случае будет релизная версия?


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Dendy от Декабрь 18, 2009, 04:31
Файл не обязательно указывать то. Достаточно цель для сборки :) обрабатывается Makefile и передается управление в Makefile.Release (или Debug) :)

Спасибо, буду знать! (-; Но у вызова непосредственно мейкфайла через Makefile.Debug (Release) есть одно преимущество - можно указывать таргеты без уточнения к какому типу сборки они относятся.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Dendy от Декабрь 18, 2009, 04:32
Правильно я понимаю, что если при конфигурации указал -release (а не -debug-and-release или -debug), то в любом случае будет релизная версия?

Всё верно.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: NkuNLANfT от Декабрь 18, 2009, 15:12
Ясно, спасибо за ответы.


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: 0x0001 от Март 07, 2010, 04:35
win32-VS2008:
а я Проблему так м не смог решить, выдаёт как и у NkuNLANfT: (пробовал все варианты)
Код:
main.obj : error LNK2019: unresolved external symbol "class QObject * __cdecl qt
_plugin_instance_qsqlite(void)" (?qt_plugin_instance_qsqlite@@YAPAVQObject@@XZ)
referenced in function "public: __thiscall StaticqsqlitePluginInstance::Staticqs
qlitePluginInstance(void)" (??0StaticqsqlitePluginInstance@@QAE@XZ) ..... 

Что делать ?? Неужели невозможно нормально поставить QT версии 4.6.x с ключёми -static ?



Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Elron от Апрель 07, 2010, 17:04
Аналогичная проблема, может кто-нибудь сделает видео как он это сделал и с какой версией делал ?!


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Danila_Bagrofff от Сентябрь 01, 2010, 12:45
Тоже теперь собираю сборку под vis.studio 2009.

Столкнулся с проблемой:

Цитировать
Setting environment for using Microsoft Visual Studio 2008 x86 tools.

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>cd c:\qt-4.6.3

c:\Qt-4.6.3>nmake

Служебная программа обслуживания программ Microsoft (R), версия 9.00.30729.01
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

        C:\Qt-4.6.3\bin\qmake C:/Qt-4.6.3/\projects.pro  -o Makefile -spec win32
-msvc2005
"C:\Qt-4.6.3\bin\qmake" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
NMAKE : fatal error U1077: C:\Qt-4.6.3\bin\qmake: возвращенный код "0x1"
Stop.


Что не так?)


Название: Re: Статическая сборка Qt, vs2008.
Отправлено: Mikhail от Сентябрь 01, 2010, 14:20
Отсутствует путь на (QTDIR)/bin.
Прочитайте внимательно инструкцию по сборке