Название: сборки Qt для static и shared компоновки конфликтуют Отправлено: Гурман от Июль 13, 2010, 14:41 проект собирался динамически, ветку Qt для него не трогал, установил параллельно еще одну ветку той же версии Qt, добавил ей в название static, сгенерил в ней статические библиотеки
НО! при запуске qtcreator из каталога 1й ветки (где библиотеки и конфигурационные файлы для shared) и попытке собрать стороннюю часть проекта получаю сообщение об ошибке на Код: throw errorcode; хотя собираю код, который не использует mingwm10.dll то есть, может использовать исключения получилось, что полетели настройки ветки, предназначенной для динамической сборки - как это произошло, если я ставил и конфигурировал статический Qt параллельно?? разве только маршруты смотрю в маршруты - там все нормально осталось, QTDIR и переменные в PATH указывают на ветку для динамической сборки где собака порылась, и как теперь получить возможность динамической или статической сборок? кстати, попутно вопрос - а так ли обязательно -no-exceptions для статической сборки, и нельзя ли собрать проект статически только с библиотеками Qt, а для работы исключений класть вместе с exe библиотеку mingwm10.dll? она крохотная, и все равно продукт из нескольких файлов состоит, и LGPL лицензия вроде позволяет дело то в том, что и в основной части проекта исключения вовсю используются, без них никак... Название: Re: сборки Qt для static и shared компоновки конфликтуют Отправлено: Sahab от Июль 13, 2010, 15:14 както все путанно...
Цитировать собираю код, который не использует mingwm10.dll ? Цитировать собираю код, который не использует mingwm10.dll то есть, может использовать исключения ???в креаторе настройки профили qt настраиваются Название: Re: сборки Qt для static и shared компоновки конфликтуют Отправлено: Гурман от Июль 13, 2010, 15:25 что именно путанно?
везде написанно, что для статической сборки нельзя использовать исключения, поскольку они не работают в mingwm10.dll и Qt надо собирать с соответствующим ключом - я так и сделал проект у меня состоит из нескольких подпроектов, в одном из них (да и в других тоже, на самом деле) активно используются исключения, я попытался этот проект собрать в Release в том варианте, где он ранее нормально собирался в Debug - получил сообщение об ошибке где именно в креаторе разрешить исключения для проекта - я не вижу, вижу только ключ -fno-exceptions в Makefile.release, но его убирать нет смысла, поскольку при полной сборке этот файл генерится заново я не могу сейчас понять, откуда в Makefile попадает ключ -fno-exceptions если ветка shared дистрибутива Qt не изменялась, этот ключ должен быть только в ветке static Название: Re: сборки Qt для static и shared компоновки конфликтуют Отправлено: lit-uriy от Июль 13, 2010, 16:38 >>для статической сборки нельзя использовать исключения, поскольку они не работают в mingwm10.dll
вообще-то mingwm10.dll - это как раз для их обработки. А исключения не рекомендуют именно для того, чтобы от её зависимости отказаться Название: Re: сборки Qt для static и shared компоновки конфликтуют Отправлено: Гурман от Июль 13, 2010, 17:57 ну я имел в виду, что при статической сборки с ней исключения нельзя использовать, они не работают, поэтому рекомендуют везде ключ -no-exceptions
однако эти факты мне ничего не дают - похоже придется переставлять Qt и генерить static заново, но с исключениями, если вообще это будет работать Название: Re: сборки Qt для static и shared компоновки конфликтуют Отправлено: Гурман от Июль 14, 2010, 10:52 некогда было разбираться где что поломалось, снес сгенерированную static версию Qt под корешок, а shared версию переустановил заново прямо поверх имевшейся - проекты в shared варианте стали собираться
после чего установил параллельно снова отдельную версию Qt в каталог с суффиксом static и в нем сделал configure но уже без ключа -no-exceptions, сделал make, библиотеки собрались, проверил, что после этого shared варианты приложения тоже собираются нельзя назвать это "решением", хотя вроде должно работать, но лезет другой косяк, отпишу в нем в более тематичном разделе |