У меня есть проект, который в настоящее время существует из библиотеки 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 связывание?
- Должен ли я разбить мои файлы на большее количество библиотек, чем одна?
Я не мог найти источник, который дает мне лучшие практики для такого проекта.