Мої швидкі два шматочки з цього приводу: 10 (вибачте жахливий жарт).
Щоб трохи розширитись, ось що:
1- Статична бібліотека може залежати від іншої статичної бібліотеки, нічого або навіть динамічної бібліотеки: у перших двох випадках весь код нової статичної бібліотеки буде включений до нової SLL (статичної посилання бібліотеки), однак, 3-й варіант залежно від навколишнього середовища може призвести до того, що УЛР має один із наступних результатів,
- він міститиме статичні версії потрібного йому коду, зібраного з DLL (бібліотека динамічних посилань)
- або, що ще жахливіше, ви мали б статичну бібліотеку, яка, якщо вона включена в проект, спричинить вимогу доставки з DLL, порушуючи всю точку статичного зв’язку.
Отже, коротко, ви можете зв'язати статичну бібліотеку зі статичною бібліотекою
2- якщо lib1 і lib2 є статичними, а lib1 пов'язаний з lib2, то вся функціональність lib2 буде доступна всередині lib1 без необхідності включати lib2, оскільки lib2 буде статично пов'язаний всередині lib1 (думайте, російські ляльки, з lib2 будучи меншим).
У описуваному сценарії у кожному з файлів, до яких потрібно включити, має бути дискретна функціональність, яка статично не пов'язана, отже, необхідність у декількох файлах, інакше у вас буде один файл, який слід включити, і ви будете добре.
Візьміть наступне: Один .h файл із посиланням на 6 статично пов'язаних бібліотек: вам потрібно буде включити 7 файлів у свій проект, щоб отримати повну функціональність
Один SLL, створений із згаданого .h-файлу, вимагатиме включення лише нової SLL для посилання при компіляції:
Сподіваюся, це допомагає, і що я зрозумів, про що ви питаєте.