Russian Qt Forum
Ноябрь 06, 2024, 02:53
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Precompiled headers
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Precompiled headers (Прочитано 5032 раз)
QCasper
Гость
Precompiled headers
«
:
Сентябрь 28, 2007, 11:03 »
Раньше все как-то не связывался, но тут решил попробовать, прочитал значит статейку
1
, все сделал, все клево работает. Одна проблема, допустим у меня куча проектов, они все генерят свой собственный *.pch файл и используют его потом. А как сделать, чтобы они все использовали один такой файл, который был сгенерен заранее?
1.
http://wiki.qtcentre.org/index.php?title=Precompiled_headers
Записан
Dendy
Гость
Re: Precompiled headers
«
Ответ #1 :
Сентябрь 28, 2007, 13:47 »
Рекомендую этим не заниматься. Прекомпиленые заголовочники могут быть использованы вместо обычных только если выполнен ряд условий: Совпадение параметров компиляции, архитектуры, путей, директив, содержимого исходного кода такого заголовочника и так далее. Что будет, если в каком-то проекте вы захотите помимо <QtCore> <QtGui> добавить, к примеру, <string.h>? Или начнёте играться с оптимизациями -O2, -O3, -Os? Или вы собираетесь держать гигабайты всевозможных комбинаций у себя на жёстком диске? Прекомпиленые заголовочники - способ оптимизации сборки, результатом которой является временный вспомогательный файл. И как и все временные файлы он не должен пересекаться с продуктами компиляции других программ и в любой момент может быть удалён.
Записан
QCasper
Гость
Re: Precompiled headers
«
Ответ #2 :
Сентябрь 28, 2007, 13:55 »
Цитата: Dendy от Сентябрь 28, 2007, 13:47
Что будет, если в каком-то проекте вы захотите помимо <QtCore> <QtGui> добавить, к примеру, <string.h>? Или начнёте играться с оптимизациями -O2, -O3, -Os? Или вы собираетесь держать гигабайты всевозможных комбинаций у себя на жёстком диске?
Перекомпилю этот файл заново.
Цитата: Dendy от Сентябрь 28, 2007, 13:47
Прекомпиленые заголовочники - способ оптимизации сборки, результатом которой является временный вспомогательный файл. И как и все временные файлы он не должен пересекаться с продуктами компиляции других программ и в любой момент может быть удалён.
Согласен, но тем не менее он может быть опять восстановлен и опять использован.
Записан
Dendy
Гость
Re: Precompiled headers
«
Ответ #3 :
Сентябрь 28, 2007, 14:38 »
Технически проблем нет. Можно создать папку, в которой будут лежать стопкой:
ph-qtcore4.3-qtgui4.3-qtnetwork4.3-...<all headers with versions>-...gcc4.1-x86-Og-...<all compiler options>-D...<additional defines>...<and so on>
Рядом с ним будет генериться такой же pch файл. Кроме того потребуется создать универсальные правила по собиранию информации о проекте с генерацией таких имён, и не дай вам Бог что-то пропустить. Эти правила будут навязываться остальным пользователям, которым вы передадите проект. Неиспользуемые прекомпиленые заголовочники будут лежать мёртвым грузом. Изменение "универсальной" сигнатуры приведёт к пересозданию файлов.
Спрашивается, оно вам нужно? Чего хоть добиваетесь? Экономии места на диске или времени сборки? Сомневаюсь, что есть выгода и в первом и во втором.
Записан
QCasper
Гость
Re: Precompiled headers
«
Ответ #4 :
Сентябрь 28, 2007, 15:56 »
Цитата: Dendy от Сентябрь 28, 2007, 14:38
Чего хоть добиваетесь? Экономии места на диске или времени сборки? Сомневаюсь, что есть выгода и в первом и во втором.
Добиваюсь второго. Хорошо, какое решение данной задачи вы считаете оптимальным и можете посоветовать?
Записан
Dendy
Гость
Re: Precompiled headers
«
Ответ #5 :
Сентябрь 29, 2007, 02:23 »
Всё просто - в каждой сборке проекта генерация своего заголовочника.
Может быть я неверно понял и вам нужно использовать одни и те же прекомпиленые заголовочники внутри связанной цепочки проектов.
Записан
QCasper
Гость
Re: Precompiled headers
«
Ответ #6 :
Сентябрь 29, 2007, 10:53 »
Цитата: Dendy от Сентябрь 29, 2007, 02:23
Всё просто - в каждой сборке проекта генерация своего заголовочника.
Понятно, в конечном итоге я так и сделал. Просто хотел обойти генерацию заголовочника на каждом проекте.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...