Как я могу оптимизировать свой проект для компоновщика в C ++ Qt? - PullRequest
1 голос
/ 13 марта 2020

У меня есть проект, который в настоящее время существует из библиотеки c, исполняемого файла и тестового исполняемого файла. Два исполняемых файла ссылаются на библиотеку stati c. Библиотека stati c содержит почти все файлы C ++ и заголовочные файлы.

Я использую Qt 5.14 и определил около 3000 Q_PROPERTY с (3000 функций получения и 3000 функций установки). Я включил -Wa, -mbig-obj в качестве параметров компилятора, потому что mocs_compilation. cpp становилось слишком большим для компиляции. В настоящее время проект компилируется для Windows в Mingw с g cc.

Моя проблема в настоящее время заключается в медленном связывании проекта. Компоновщику требуется очень много времени для обработки библиотеки stati c.

Существуют возможности переключения компиляторов или компоновщиков, но в настоящее время меня интересует структура проекта. Что компоновщику нравится больше всего?

  • Много. cpp файлов и много .o файлов?
  • Или на самом деле большой одиночный файл .o?
  • Будет ли это быстрее, когда я буду выполнять динамическое c связывание?
  • Должен ли я разбить мои файлы на большее количество библиотек, чем одна?

Я не мог найти источник, который дает мне лучшие практики для такого проекта.

...