Название: [РЕШЕНО] QZipWriter отсутствует в QtGui Отправлено: Пантер от Январь 19, 2012, 10:38 Собираю 4.8.0 и 4.7.4 с одинаковыми параметрами:
Код: configure.exe -debug-and-release -opensource -shared -no-fast -exceptions -stl -qt-sql-sqlite -no-qt3support -platform win32-g++ -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-dsp -no-vcproj -plugin-manifests -qmake -no-phonon -no-phonon-backend -webkit -declarative -declarative-debug В итоге, в QtGui4.dll от 4.7.4 отсутствует QZipWriter, а от 4.8.0 он присутствует. В чем косяк с версией 4.7.4? Название: Re: QZipWriter отсутствует в QtGui Отправлено: LisandreL от Январь 19, 2012, 11:30 В 4.7.4 ?/include/QtGui/ не содержит приватных классов.
В 4.8.0 в ?/include/QtGui/private/ лежат заголовочники, не являющие частью Qt API. Название: Re: QZipWriter отсутствует в QtGui Отправлено: Пантер от Январь 19, 2012, 11:42 LisandreL, это чинится?
Название: Re: QZipWriter отсутствует в QtGui Отправлено: LisandreL от Январь 19, 2012, 12:03 Закидыванием qzipwriter_p.h в папку поекта, например.
Можно было бы даже вот такую конструкцию соорудить: Код: #if QT_VERSION_CHECK < 0x040800 Название: Re: QZipWriter отсутствует в QtGui Отправлено: Пантер от Январь 19, 2012, 12:10 Не, тут другой косяк. Хидер-то я закинул. Проблема на этапе линковки - анрезолвед выдает.
Название: Re: QZipWriter отсутствует в QtGui Отправлено: LisandreL от Январь 19, 2012, 13:21 Ну покажите подробности.
Кусок кода, ошибки линковки. Название: Re: QZipWriter отсутствует в QtGui Отправлено: Пантер от Январь 19, 2012, 13:26 Код: Linking CXX executable tar2moscow.exe Название: Re: QZipWriter отсутствует в QtGui Отправлено: ddrtn от Январь 19, 2012, 13:36 там замечательная строчка есть
Код: #ifndef QT_NO_TEXTODFWRITER Название: Re: QZipWriter отсутствует в QtGui Отправлено: GreatSnake от Январь 19, 2012, 13:42 У тебя QZipWriter не экспортится, т.к. по умолчанию приватные классы не экспортятся.
Включи QT_BUILD_INTERNAL макрос при сборке QtGui либо напрямую вкомпиляй в свой код QZipWriter. Название: Re: QZipWriter отсутствует в QtGui Отправлено: Пантер от Январь 19, 2012, 14:49 GreatSnake, спасибо. -D QT_BUILD_INTERNAL к configure решил проблему.
Название: Re: QZipWriter отсутствует в QtGui Отправлено: GreatSnake от Январь 19, 2012, 14:56 GreatSnake, спасибо. -D QT_BUILD_INTERNAL к configure решил проблему. Я бы для портабельности всё-таки явно вкомпилил src/gui/text/qzip.cpp.Название: Re: QZipWriter отсутствует в QtGui Отправлено: Пантер от Январь 19, 2012, 15:06 GreatSnake, спасибо. -D QT_BUILD_INTERNAL к configure решил проблему. Я бы для портабельности всё-таки явно вкомпилил src/gui/text/qzip.cpp.Название: Re: QZipWriter отсутствует в QtGui Отправлено: GreatSnake от Январь 19, 2012, 15:13 У него там еще зависимость от qplatformdefs.h. Ну и что? Ведь он публичный и лежит в mkspecs.Название: Re: QZipWriter отсутствует в QtGui Отправлено: Пантер от Январь 19, 2012, 15:19 У него там еще зависимость от qplatformdefs.h. Ну и что? Ведь он публичный и лежит в mkspecs.Название: Re: QZipWriter отсутствует в QtGui Отправлено: GreatSnake от Январь 19, 2012, 15:31 У него там еще зависимость от qplatformdefs.h. Ну и что? Ведь он публичный и лежит в mkspecs.Название: Re: QZipWriter отсутствует в QtGui Отправлено: Пантер от Январь 19, 2012, 15:34 Хм, учту.
Название: Re: QZipWriter отсутствует в QtGui Отправлено: pastor от Январь 19, 2012, 16:24 У тебя QZipWriter не экспортится, т.к. по умолчанию приватные классы не экспортятся. Включи QT_BUILD_INTERNAL макрос при сборке QtGui либо напрямую вкомпиляй в свой код QZipWriter. Да, причина в этом. Я отправил мердж реквест по этому поводу и приняли его в 4.8.0 |