Мои быстрые два бита на этом: 10 (извините, ужасная шутка).
Чтобы немного расширить, здесь идет:
1- Статическая библиотека может зависеть от другой статической библиотеки, ничего или даже от динамической библиотеки: в первых двух случаях весь код новой статической библиотеки будет включен в новую SLL (Static Link Library), однако третий вариант в зависимости от окружающей среды может привести к тому, что у SLL будет один из следующих результатов,
- он будет содержать статические версии кода, требуемого для него, собранные из DLL (Dynamic Link Library)
- или, что еще более ужасно, у вас была бы статическая библиотека, которая при включении в проект вызвала бы необходимость доставки с DLL, что нарушило бы весь смысл статического связывания.
Короче говоря, вы можете связать статическую библиотеку со статической библиотекой
2 - если lib1 и lib2 оба статичны, а lib1 была связана с lib2, то все функции lib2 были бы доступны в lib1 без необходимости включать lib2, так как lib2 была бы статически связана внутри lib1 (думаю, русские куклы, с lib2 будучи меньше).
В сценарии, который вы описываете, должны быть отдельные функциональные возможности, доступные в каждом из файлов, которые вы должны включить, которые не являются статически связанными, следовательно, необходимо несколько файлов, в противном случае вам нужно было бы включить один файл, и все будет в порядке.
Возьмем следующее: Один файл .h со ссылками на 6 статически связанных библиотек: вам нужно включить 7 файлов в ваш проект, чтобы получить полную функциональность
Один SLL, созданный из указанного файла .h, потребует включения только нового SLL для компоновки при компиляции:
Надеюсь, это поможет, и я понял, о чем вы спрашивали.