У меня есть некоторый код, который используется несколькими проектами в статической библиотеке. Даже при связывании на уровне функций я получаю больше выходного кода, чем хотелось бы в выводе - см. Другой вопрос об этом .
Конечно, самым простым решением для уменьшения количества объектного кода, связанного с конечным исполняемым файлом, было бы разделить блоки перевода так, чтобы я получал больше файлов .obj с меньшим количеством объектного кода. Я даже могу пойти на крайние меры - поместить каждую функцию в отдельную единицу перевода.
Давайте представим, что меня не волнует беспорядок, вызванный наличием в десять раз больше файлов .cpp, и меня не волнует возможное увеличение времени ссылки.
Приведет ли такое разбиение на множество объектных файлов накладные расходы на размер исполняемого файла? Выполняется ли исполняемый файл просто потому, что в нем было в десять раз больше файлов .obj (но в целом они имеют одинаковые функции и переменные), связанные с ним?