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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Приватные заголовки Qt4.  (Прочитано 6326 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« : Ноябрь 15, 2010, 17:03 »

Почему в *.nix инсталляшках пакета Qt4 нету приватных хейдеров в /private/ ? т.е. почему тролли собирают свой фреймворк без них?

Самое интересное, что в виндах эти хейдеры есть!  (по крайней мере при установке SDK).
см. для примера : <qt_install_dir>\include\QtCore\private\

Ёлки! А они мне нужны!

--

Вот, только что мелькнула мысль, что наверное и в виндах их нет, если устанавливать не SDK а просто Qt4!

Так ли это?
« Последнее редактирование: Ноябрь 15, 2010, 17:06 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
crossly
Гость
« Ответ #1 : Ноябрь 15, 2010, 17:05 »

кто сказал что их нету??
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Ноябрь 15, 2010, 17:06 »

У меня в линухе их нету.  В арче.
Записан

ArchLinux x86_64 / Win10 64 bit
crossly
Гость
« Ответ #3 : Ноябрь 15, 2010, 17:07 »

не может быть.... без них не соберется...
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #4 : Ноябрь 15, 2010, 17:09 »

Всё без них собирается!

Но если с "ними" пишу в линухе:
Код:
...
#include "private/blabla_p.h"
...

То оно их не находит и ничего не собирается Грустный
Записан

ArchLinux x86_64 / Win10 64 bit
crossly
Гость
« Ответ #5 : Ноябрь 15, 2010, 17:13 »

а теперь проясните себе... где этот заголовок должен лежать... при таком инклуде
Записан
BRE
Гость
« Ответ #6 : Ноябрь 15, 2010, 17:15 »

не может быть.... без них не соберется...
Можно собрать, а в пакет их не включать. Что-бы желание отбить от их использования. Улыбающийся

2 kuzulis. Наверное придется их руками устанавливать.
Записан
crossly
Гость
« Ответ #7 : Ноябрь 15, 2010, 17:18 »

речь об SDK??
Записан
BRE
Гость
« Ответ #8 : Ноябрь 15, 2010, 17:30 »

речь об SDK??
Я так понял о речь про штатный пакет.
Посмотрел у себя: в арче нет, в федоре тоже нет приватных заголовков. Не пакуют их. Что и не удивительно - private.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #9 : Ноябрь 15, 2010, 18:19 »

Цитата: BRE
Я так понял о речь про штатный пакет.
Посмотрел у себя: в арче нет, в федоре тоже нет приватных заголовков. Не пакуют их. Что и не удивительно - private.

Да, имеются ввиду штатные пакеты. Плохо что не пакуют.

Цитата: BRE
2 kuzulis. Наверное придется их руками устанавливать

Руками - плохая идея, т.к у разных людей разные версии Qt4 и, следовательно, разные версии этих приватных заголовков.
И они оч чильно разнятся, например от 4.6.0 до 4.7.0 оч много изменений...
И если я для своего проекта распространяю их вместе с проектом, то соответственно, те у кого другая версия Qt4 уже не соберут мой проект.

Только не надо говорить что, их лучше не использовать, НО в них реализованы некоторые классы типа QRingBuffer (в AbstractSocket), которые и Я хочу использовать..
Но постоянно таскать с собой для Линуха эти заголовки (таскать с сорцами своего приложения имею ввиду) не есть хорошая идея. 
 Грустный

Даж и не знаю что делать.. В арче даже пакетов нету типа qt4-develop или типо того, чтобы можно было доустановить.. Написать мантейнеру письмо о включении их в пакет чтоль?
Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #10 : Ноябрь 15, 2010, 18:22 »

дак а разработческий пакет поставить? Штатно-то они и не нужны, на исполнение бинарей ни как не влияют
Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #11 : Ноябрь 15, 2010, 19:13 »

дак а разработческий пакет поставить? Штатно-то они и не нужны, на исполнение бинарей ни как не влияют
Так нету разработческого пакета в репозитории то!

Записан

ArchLinux x86_64 / Win10 64 bit
BRE
Гость
« Ответ #12 : Ноябрь 15, 2010, 21:45 »

Только не надо говорить что, их лучше не использовать, НО в них реализованы некоторые классы типа QRingBuffer (в AbstractSocket), которые и Я хочу использовать..
Раз эти классы не сделали public, наверное у разработчиков есть на это свои причины. Их API все равно не стабильно и ты используешь их в своих проектах на свой страх и риск, в любой момент это может поломаться. Так для чего это использовать?
Проще уж форкнуть их себе в проект и поддерживать самому.

Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #13 : Ноябрь 15, 2010, 23:58 »

>>Проще уж форкнуть их себе в проект и поддерживать самому.
форкнуть прийдётся целую кучу, по цепочки. Потом всё переименовать т.к. это Си++ и конфликт имён гарантирован
Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #14 : Ноябрь 16, 2010, 08:21 »

Придется наверное, не наследоваться от приватных класов Qt4 (т.к. это ломает бинарную совместимость , как на хабре один человек советовал, да и тут много кто).
И форкнуть один только класс QRingBuffer и, в принципе, проблема будет решена.

Но уж ой как хочется сделать свою поделку как можно "теснее интегрированную" с Qt классами! (Это желание чисто на подсознательном уровне Улыбающийся ).  
 
Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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