У нас есть приложение, в котором код организован в несколько библиотек, некоторые из которых зависят от других из этих библиотек, поэтому у нас есть дерево зависимостей, например
App
|
+--------+--------+
| | |
v v v
lib1 lib2 lib3
| |
v v
lib3 lib3
Недавно кто-то добавил в lib3 новый метод, который зависит от класса, определенного в lib2, и, поскольку он генерировал циклические включения, мы сделали предварительное объявление класса, необходимого в заголовочном файле, присутствующем в lib3.
Теперь каждая библиотека скомпилирована в статическую библиотеку, а затем связана с соответствующим списком ссылок, поэтому lib2 находится в списке ссылок lib2, а также lib3 находится в списке симпатий lib2.
Пока это работает отлично, но мне было интересно узнать о недостатках, связанных с такой компиляцией и связыванием зависимостей. Я думал, что может случиться так, что изменение в lib2 не будет замечено lib3, если оно не будет перекомпилировано, но я проверил, и любое изменение в любом заголовочном файле в lib2 вызовет перекомпиляцию lib3 (здесь немного удачи).
Есть ли какой-либо другой важный недостаток, о котором я должен знать??
#include
? А если второе, то уверены ли вы, что все эти#include
утверждения действительно необходимы? - person Beta   schedule 30.05.2016