Просмотр сообщений
|
Страниц: 1 ... 80 81 [82] 83 84 ... 96
|
1217
|
Qt / Общие вопросы / Re: Люди, кто делал справочную систему на qt??
|
: Июль 14, 2010, 16:52
|
сначала создаешь файл *.qhp, в формате XML, потом процессом qhelpgenerator генерируется файл *.qch, потом создаешь файл *.qhcp в формате XML и процессом qcollectiongenerator генеришь файл .qhс, он используется процессом assistant спасибо конечно, но подробным мануалом это назвать трудно...
|
|
|
1219
|
Qt / Общие вопросы / Re: static приложение не собирается, не простейшая ситуация
|
: Июль 14, 2010, 13:00
|
перенес 1 файл из проекта библиотеки в проект основного приложения - тот самый, в котором класс с неудовлетворенными ссылками - все собралось, все работает, приложение получилось статическим, нужен только mingwm10.dll из-за использования исключений смотрю на настройки обоих проектов - они одинаковы...
|
|
|
1221
|
Qt / Общие вопросы / static приложение не собирается, не простейшая ситуация
|
: Июль 14, 2010, 11:28
|
структура проекта такая: - собирается статическая библиотека .a, которая преимущественно состоит из кода на С, но имеет некоторый код на С++, и один класс, использующий классы Qt для работы с динамическими библиотеками - собирается основное приложение, которое линкуется с предыдущей библиотекой, оно вовсю использует Qt - собирается динамическая библиотека, которая при ее наличии в каталоге приложения опознается и загружается основным приложением (при помощи того самого класса, который в статической библиотеке), либо не загружается, если отсутствует, подобных библиотек может быть много (типа плагины но в собственном формате) все это в варианте с shared Qt на ура собирается и замечательно работает теперь надо собрать статический вариант, при этом допускается включение небольших библиотек в комплект, то есть, mingwm10.dll можно положить рядом, значит можно не отключать обработку исключений статический Qt был собран следующим образом: - дистрибутив установлен в отдельный каталог параллельно с базовой shared версией в каталог c:/Qt/2009.03.static - в нем выполнены configure -static -debug-and-release -no-webkit -no-qt3support и mingw32-make sub-src (ключ -no-exceptions опущен, поскольку приложение вовсю использует исключения) - не редактировал mkspecs как рекомендуется, поскольку где-то прочел, что для самих библиотек Qt это не нужно, а при сборке приложений ключ можно добавить в проект после сборки статического Qt образовались библиотеки с похожими именами на готовые, но без индекса 4 в конце имени, и в разы больше shared, как и должно быть (только с именами не понятно, так ли должно быть): 14.07.2010 10:30 4 311 604 libQtCore.a 22.06.2009 16:41 2 294 384 libQtCore4.a 14.07.2010 10:28 114 143 474 libQtCored.a 22.06.2009 16:41 2 624 084 libQtCored4.a проверено, что после установки и сборки статической версии Qt динамическая версия приложения по-прежнему нормально собирается и работает но при попытке собрать статическую версию, собирается только библиотека .a, а сборка приложения на этапе компоновки валится с сообщениями о неудовлетворенных ссылках в этой библиотеке, ссылки на методы классов Qt такого вида ../dlloading.cpp:18: undefined reference to `_imp___ZN4QDirC1ERK7QStringS2_6QFlagsINS_8SortFlagEES3_INS_6FilterEE' и c:/Qt/2009.03/qt/include/QtCore/../../src/corelib/tools/qlist.h:(.text$_ZN5QListI9QFileInfoEixEi[QList<QFileInfo>::operator[]:-1: error: undefined reference to `_imp___Z11qt_assert_xPKcS0_S0_i' как видно, ссылки в библиотеке почему-то идут на shared версию, хотя в проекте везде понаписано static, причем в Настройках запуска для QTDIR тоже указано C:/Qt/2009.03.static/qt я даже понаписал таких ключей CONFIG += staticlib \ static QMAKE_LFLAGS += -static \ -LC:/Qt/2009.03.static/qt/lib пытался в системе заменить переменную QTDIR на C:/Qt/2009.03.static/qt - не помогает, библиотека все равно собирается со ссылками на shared версию где еще это настраивать??? что надо сделать, чтобы библиотекарь при сборке статической библиотеки компоновал ее с библиотеками в static каталоге? а может дело в чем-то другом?
|
|
|
1222
|
Qt / Qt-инструментарий / Re: сборки Qt для static и shared компоновки конфликтуют
|
: Июль 14, 2010, 10:52
|
некогда было разбираться где что поломалось, снес сгенерированную static версию Qt под корешок, а shared версию переустановил заново прямо поверх имевшейся - проекты в shared варианте стали собираться
после чего установил параллельно снова отдельную версию Qt в каталог с суффиксом static и в нем сделал configure но уже без ключа -no-exceptions, сделал make, библиотеки собрались, проверил, что после этого shared варианты приложения тоже собираются
нельзя назвать это "решением", хотя вроде должно работать, но лезет другой косяк, отпишу в нем в более тематичном разделе
|
|
|
1223
|
Qt / Qt-инструментарий / Re: сборки Qt для static и shared компоновки конфликтуют
|
: Июль 13, 2010, 17:57
|
ну я имел в виду, что при статической сборки с ней исключения нельзя использовать, они не работают, поэтому рекомендуют везде ключ -no-exceptions
однако эти факты мне ничего не дают - похоже придется переставлять Qt и генерить static заново, но с исключениями, если вообще это будет работать
|
|
|
1224
|
Qt / Qt-инструментарий / Re: сборки Qt для static и shared компоновки конфликтуют
|
: Июль 13, 2010, 15:25
|
что именно путанно?
везде написанно, что для статической сборки нельзя использовать исключения, поскольку они не работают в mingwm10.dll и Qt надо собирать с соответствующим ключом - я так и сделал
проект у меня состоит из нескольких подпроектов, в одном из них (да и в других тоже, на самом деле) активно используются исключения, я попытался этот проект собрать в Release в том варианте, где он ранее нормально собирался в Debug - получил сообщение об ошибке
где именно в креаторе разрешить исключения для проекта - я не вижу, вижу только ключ -fno-exceptions в Makefile.release, но его убирать нет смысла, поскольку при полной сборке этот файл генерится заново
я не могу сейчас понять, откуда в Makefile попадает ключ -fno-exceptions если ветка shared дистрибутива Qt не изменялась, этот ключ должен быть только в ветке static
|
|
|
1225
|
Qt / Qt-инструментарий / сборки Qt для static и shared компоновки конфликтуют
|
: Июль 13, 2010, 14:41
|
проект собирался динамически, ветку Qt для него не трогал, установил параллельно еще одну ветку той же версии Qt, добавил ей в название static, сгенерил в ней статические библиотеки НО! при запуске qtcreator из каталога 1й ветки (где библиотеки и конфигурационные файлы для shared) и попытке собрать стороннюю часть проекта получаю сообщение об ошибке на хотя собираю код, который не использует mingwm10.dll то есть, может использовать исключения получилось, что полетели настройки ветки, предназначенной для динамической сборки - как это произошло, если я ставил и конфигурировал статический Qt параллельно?? разве только маршруты смотрю в маршруты - там все нормально осталось, QTDIR и переменные в PATH указывают на ветку для динамической сборки где собака порылась, и как теперь получить возможность динамической или статической сборок? кстати, попутно вопрос - а так ли обязательно -no-exceptions для статической сборки, и нельзя ли собрать проект статически только с библиотеками Qt, а для работы исключений класть вместе с exe библиотеку mingwm10.dll? она крохотная, и все равно продукт из нескольких файлов состоит, и LGPL лицензия вроде позволяет дело то в том, что и в основной части проекта исключения вовсю используются, без них никак...
|
|
|
1227
|
Qt / Qt-инструментарий / спотыкается на WebCore сборка Qt static (решено)
|
: Июль 13, 2010, 10:59
|
пытаюсь собрать Qt для статической сборки, для этого установил ту же версию Qt, с которой работаю динамически, в каталог 2009.03.static, сделал нужный configure -static -release -no-exceptions, запустил mingw32-make sub-src - основная часть Qt собралась, но спотыкается на 3dparty/webkit/WebCore - нет файла с ключами @tmp\moc\release_static\mocinclude.tmp - хотя для shared такой файл есть, и еще какие-то moc_....cpp файлы валяются в tmp\moc\release_shared Содержимое папки C:\Qt\2009.03.static\qt\src\3rdparty\webkit\WebCore\tmp\moc\release_shared
22.06.2009 17:11 2 743 InspectorClientQt.moc 22.06.2009 17:17 2 240 MainThreadQt.moc 22.06.2009 17:04 12 512 mocinclude.tmp 22.06.2009 17:11 4 357 moc_FrameLoaderClientQt.cpp 22.06.2009 17:17 2 359 moc_MenuEventProxy.cpp 22.06.2009 17:11 4 104 moc_QNetworkReplyHandler.cpp 22.06.2009 17:17 6 106 moc_qwebframe.cpp 22.06.2009 17:17 2 028 moc_qwebhistoryinterface.cpp 22.06.2009 17:11 17 904 moc_qwebpage.cpp 22.06.2009 17:17 1 986 moc_qwebpluginfactory.cpp 22.06.2009 17:17 2 281 moc_QWebPopup.cpp 22.06.2009 17:17 7 161 moc_qwebview.cpp посмотрел в этот mocinclude.tmp, в нем ключи с маршрутами в каталоги для инклюдов, которых у меня нет, наверняка и shared у меня бы не собрался взял и скопировал содержимое release_shared в release_static - при попытке сборки этого же WebCore льется водопад сообщений об ошибках компоновщика, он не находит точки входа в new и delete у самых разнообразных классов из libQtCore.a не то, чтобы мне WebCore был срочно нужен, я могу без него обойтись пока, но не ясно, как его корректно исключить из генерации статической версии и тем более не ясно, как потом корректно включить, если он понадобится help, в общем...
|
|
|
1229
|
Qt / Общие вопросы / Re: QString в char*
|
: Июль 02, 2010, 15:51
|
Я правда пока не понял, почему он на передваемый char* ругался там несколько бредовых моментов было, из-за ненужного использования QByteArray
|
|
|
1230
|
Qt / Общие вопросы / Re: QString в char*
|
: Июль 02, 2010, 15:12
|
extern openFile( char* fileName ); ... QString qstrFileName = m_ui->lineFName->text(); ... openFile( qstrFileName.toLocal8Bit().data() ); так понятно? то есть, преобразовывать из QString в char* в самый последний момент, не таскать везде указатель char*
|
|
|
|
|