Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: kuzulis от Ноябрь 15, 2010, 17:03



Название: Приватные заголовки Qt4.
Отправлено: kuzulis от Ноябрь 15, 2010, 17:03
Почему в *.nix инсталляшках пакета Qt4 нету приватных хейдеров в /private/ ? т.е. почему тролли собирают свой фреймворк без них?

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

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

--

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

Так ли это?


Название: Re: Приватные заголовки Qt4.
Отправлено: crossly от Ноябрь 15, 2010, 17:05
кто сказал что их нету??


Название: Re: Приватные заголовки Qt4.
Отправлено: kuzulis от Ноябрь 15, 2010, 17:06
У меня в линухе их нету.  В арче.


Название: Re: Приватные заголовки Qt4.
Отправлено: crossly от Ноябрь 15, 2010, 17:07
не может быть.... без них не соберется...


Название: Re: Приватные заголовки Qt4.
Отправлено: kuzulis от Ноябрь 15, 2010, 17:09
Всё без них собирается!

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

То оно их не находит и ничего не собирается :(


Название: Re: Приватные заголовки Qt4.
Отправлено: crossly от Ноябрь 15, 2010, 17:13
а теперь проясните себе... где этот заголовок должен лежать... при таком инклуде


Название: Re: Приватные заголовки Qt4.
Отправлено: BRE от Ноябрь 15, 2010, 17:15
не может быть.... без них не соберется...
Можно собрать, а в пакет их не включать. Что-бы желание отбить от их использования. :)

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


Название: Re: Приватные заголовки Qt4.
Отправлено: crossly от Ноябрь 15, 2010, 17:18
речь об SDK??


Название: Re: Приватные заголовки Qt4.
Отправлено: BRE от Ноябрь 15, 2010, 17:30
речь об SDK??
Я так понял о речь про штатный пакет.
Посмотрел у себя: в арче нет, в федоре тоже нет приватных заголовков. Не пакуют их. Что и не удивительно - private.


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

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

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

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

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

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


Название: Re: Приватные заголовки Qt4.
Отправлено: lit-uriy от Ноябрь 15, 2010, 18:22
дак а разработческий пакет поставить? Штатно-то они и не нужны, на исполнение бинарей ни как не влияют


Название: Re: Приватные заголовки Qt4.
Отправлено: kuzulis от Ноябрь 15, 2010, 19:13
дак а разработческий пакет поставить? Штатно-то они и не нужны, на исполнение бинарей ни как не влияют
Так нету разработческого пакета в репозитории то!



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



Название: Re: Приватные заголовки Qt4.
Отправлено: lit-uriy от Ноябрь 15, 2010, 23:58
>>Проще уж форкнуть их себе в проект и поддерживать самому.
форкнуть прийдётся целую кучу, по цепочки. Потом всё переименовать т.к. это Си++ и конфликт имён гарантирован


Название: Re: Приватные заголовки Qt4.
Отправлено: kuzulis от Ноябрь 16, 2010, 08:21
Придется наверное, не наследоваться от приватных класов Qt4 (т.к. это ломает бинарную совместимость , как на хабре один человек советовал, да и тут много кто).
И форкнуть один только класс QRingBuffer и, в принципе, проблема будет решена.

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