Я немного потерял голову, пытаясь разузнать наиболее эффективные способы компиляции проекта C++. Я придерживаюсь более управляемых языков, таких как Java, поэтому файл CMake немного тупой для меня.Что компилировать в качестве библиотеки?
Моя основная проблема заключается в том, что я компилирую как библиотеку и что я просто скомпилирую вместе? У меня есть основная функция в моей программе с различными классами в разных файлах с заголовками. Каков наиболее нормальный способ совместной работы с этими файлами? Должен ли я компилировать основную функцию отдельно от классов, а затем связывать их или они должны быть разделяемой библиотекой, хотя она немного мала для библиотеки?
Главным образом я ищу только общие рекомендации относительно того, что должно быть скомпилировано вместе, что нужно просто связать, и кого-то, чтобы более четко объяснить нормы/лучшие практики того, как все это работает.
Я понимаю, что компилятору необходимо преобразовать файлы заголовка и источника в файлы объектов, а затем объединить их в виде двоичного файла. Я просто смущен тем, что должно войти в двоичный файл.
Если есть какие-то методы, которые требуются и для других процессов, то лучше разместить их в библиотеке. Если вы хотите развернуть только один бинарный файл, сделайте статическую библиотеку, но это увеличит размер двоичного файла. – VivekD
Сопротивление: не используйте библиотеку вообще. Когда проект будет расти, вы узнаете, когда нужно разбить код на библиотеки и двоичные файлы. – usr1234567
Используйте библиотеку почти в тех же случаях, что и в Java. – user4581301