Russian Qt Forum
Май 17, 2024, 17:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [РЕШЕНО] QZipWriter отсутствует в QtGui  (Прочитано 11785 раз)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« : Январь 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?
« Последнее редактирование: Январь 19, 2012, 16:53 от Пантер » Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Январь 19, 2012, 11:30 »

В 4.7.4 ?/include/QtGui/ не содержит приватных классов.
В 4.8.0 в ?/include/QtGui/private/ лежат заголовочники, не являющие частью Qt API.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Январь 19, 2012, 11:42 »

LisandreL, это чинится?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #3 : Январь 19, 2012, 12:03 »

Закидыванием qzipwriter_p.h в папку поекта, например.

Можно было бы даже вот такую конструкцию соорудить:
Код:
#if QT_VERSION_CHECK < 0x040800
    #include "qzipwriter_p.h"
#else
    #include #include <QtGui/private/qzipwriter_p.h>
#endif
Но QT_VERSION_CHECK всё ещё равно 0x0x040704 в 4.8.0.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Январь 19, 2012, 12:10 »

Не, тут другой косяк. Хидер-то я закинул. Проблема на этапе линковки - анрезолвед выдает.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #5 : Январь 19, 2012, 13:21 »

Ну покажите подробности.
Кусок кода, ошибки линковки.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Январь 19, 2012, 13:26 »

Код:
Linking CXX executable tar2moscow.exe
CMakeFiles\tar2moscow.dir/objects.a(targetRepresentationMoscow.cpp.obj): In function `ZN17MoscowFormatSaver8saveDataERK7QStringRK10QByteArrayS5_':
C:/panter/program/Tar2Moscow/src/core/targetRepresentationMoscow.cpp:488: undefined reference to `QZipWriter::device() const'
C:/panter/program/Tar2Moscow/src/core/targetRepresentationMoscow.cpp:489: undefined reference to `QZipWriter::status() const'
C:/panter/program/Tar2Moscow/src/core/targetRepresentationMoscow.cpp:500: undefined reference to `QZipWriter::addFile(QString const&, QByteArray const&)'
C:/panter/program/Tar2Moscow/src/core/targetRepresentationMoscow.cpp:502: undefined reference to `QZipWriter::status() const'
C:/panter/program/Tar2Moscow/src/core/targetRepresentationMoscow.cpp:505: undefined reference to `QZipWriter::addFile(QString const&, QByteArray const&)'
C:/panter/program/Tar2Moscow/src/core/targetRepresentationMoscow.cpp:508: undefined reference to `QZipWriter::status() const'
C:/panter/program/Tar2Moscow/src/core/targetRepresentationMoscow.cpp:513: undefined reference to `QZipWriter::status() const'
CMakeFiles\tar2moscow.dir/objects.a(targetRepresentationMoscow.cpp.obj): In function `~ZipWriters':
C:/panter/program/Tar2Moscow/src/core//targetRepresentationMoscow.h:58: undefined reference to `QZipWriter::close()'
C:/panter/program/Tar2Moscow/src/core//targetRepresentationMoscow.h:59: undefined reference to `QZipWriter::~QZipWriter()'
CMakeFiles\tar2moscow.dir/objects.a(targetRepresentationMoscow.cpp.obj): In function `ZN17MoscowFormatSaver10ZipWriters12addZipWriterERK7QStringS1_':
C:/panter/program/Tar2Moscow/src/core//targetRepresentationMoscow.h:68: undefined reference to `QZipWriter::QZipWriter(QString const&, QFlags<QIODevice::OpenModeFlag>)'
C:/panter/program/Tar2Moscow/src/core//targetRepresentationMoscow.h:69: undefined reference to `QZipWriter::setCompressionPolicy(QZipWriter::CompressionPolicy)'
collect2: ld returned 1 exit status
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ddrtn
Гость
« Ответ #7 : Январь 19, 2012, 13:36 »

там замечательная строчка есть
Код:
#ifndef QT_NO_TEXTODFWRITER
QT_NO_TEXTODFWRITER - определен?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #8 : Январь 19, 2012, 13:42 »

У тебя QZipWriter не экспортится, т.к. по умолчанию приватные классы не экспортятся.
Включи QT_BUILD_INTERNAL макрос при сборке QtGui либо напрямую вкомпиляй в свой код QZipWriter.
Записан

Qt 5.11/4.8.7 (X11/Win)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Январь 19, 2012, 14:49 »

GreatSnake, спасибо. -D QT_BUILD_INTERNAL к configure решил проблему.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #10 : Январь 19, 2012, 14:56 »

GreatSnake, спасибо. -D QT_BUILD_INTERNAL к configure решил проблему.
Я бы для портабельности всё-таки явно вкомпилил src/gui/text/qzip.cpp.
Записан

Qt 5.11/4.8.7 (X11/Win)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #11 : Январь 19, 2012, 15:06 »

GreatSnake, спасибо. -D QT_BUILD_INTERNAL к configure решил проблему.
Я бы для портабельности всё-таки явно вкомпилил src/gui/text/qzip.cpp.
У него там еще зависимость от qplatformdefs.h.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #12 : Январь 19, 2012, 15:13 »

У него там еще зависимость от qplatformdefs.h.
Ну и что? Ведь он публичный и лежит в mkspecs.
Записан

Qt 5.11/4.8.7 (X11/Win)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #13 : Январь 19, 2012, 15:19 »

У него там еще зависимость от qplatformdefs.h.
Ну и что? Ведь он публичный и лежит в mkspecs.
Там их очень много лежит.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #14 : Январь 19, 2012, 15:31 »

У него там еще зависимость от qplatformdefs.h.
Ну и что? Ведь он публичный и лежит в mkspecs.
Там их очень много лежит.
Нужный qplatformdefs.h лежит в %QTDIR%\mkspecs\default.
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.12 секунд. Запросов: 23.