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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Подключение ОЧЕНЬ большого header в проект  (Прочитано 5677 раз)
titan83
Гость
« : Август 20, 2016, 10:51 »

Уважаемые коллеги, здравствуйте.
В одном своем проекте начал использовать математическую библиотеку exprtk - вещь классная, но автор выбрал путь одного большого хидера, в котором также размещена и реализация. В результате exprtk.hpp получился 1,2Mb.
Если я вношу любые изменения в класс, к которому этот хидер подключен, то на 5 минут я отдыхаю от разработки - это очень неудобно.
Я попробовал использовать precompiled header, но, видимо, что-то я не доделал, т.к. никакого эффекта мои действия не возымели.
Добавил в pro-файл такую строку:
PRECOMPILED_HEADER = libs/exprtk/exprtk.hpp
Ошибок нет, но и компиляция идет каждый раз.
Может кто сталкивался с подобным вопросом?
Спасибо.
Записан
titan83
Гость
« Ответ #1 : Август 20, 2016, 15:18 »

В pro-файл добавил
CONFIG += precompile_header
В копиляции вижу, что добавился ключ к командной строке компилятора, но компиляция все также около 5 минут.
Записан
Bepec
Гость
« Ответ #2 : Август 20, 2016, 21:17 »

Старый Qt на mingw не поддерживает precompiled.
Версию компилятора б хоть привели )
Записан
titan83
Гость
« Ответ #3 : Август 21, 2016, 11:45 »

Вы правы, привожу:
gcc 4.7
вроде как все поддерживает.
Записан
Bepec
Гость
« Ответ #4 : Август 21, 2016, 11:56 »

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

Сообщений: 4724



Просмотр профиля WWW
« Ответ #5 : Август 21, 2016, 18:00 »

в precompiled header суются неизменные заголовочные файлы
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Vamireh
Гость
« Ответ #6 : Август 21, 2016, 20:51 »

А если написать свою dll-ку типа ExprtkWrapper, где во внешний интерфейс вынести необходимый вам функционал exprtk, а exprtk.hpp подключать только в cpp этой своей либы?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #7 : Август 21, 2016, 20:59 »

А если написать свою dll-ку типа ExprtkWrapper, где во внешний интерфейс вынести необходимый вам функционал exprtk, а exprtk.hpp подключать только в cpp этой своей либы?
Судя по всему, это шаблонная библиотека, поэтому от хедера особо не избавиться.
Записан
Vamireh
Гость
« Ответ #8 : Август 21, 2016, 21:12 »

Ну вообще, у меня был подобный случай. Я просто распотрошил коды сторонней либы и оставил только то, что мне нужно. Способ идиотский, но поставленной цели я достиг.
Записан
titan83
Гость
« Ответ #9 : Август 29, 2016, 09:04 »

Коллеги, всем спасибо за ответы.
Итоги такие: первая сборка - около 2 часов, последующие неполные сборки - около 5-7 минут.
Без либы проект собирался бы секунд за 30.
Похоже, что пора переходить со старого ноута на мощненький десктоп.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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