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