Я голосую за версию 2.
#include "../lib1/lib1.h" // 1
Это предполагает, что дерево всегда останется прежним.Поэтому, когда вы изменяете свою структуру, вам нужно будет изменить это везде.
#include "lib1/lib1.h" // 2
Я не вижу, в чем проблема добавления src к пути включения.На самом деле вам даже не нужно добавлять src в путь включения, вы можете напрямую добавить src / lib1 и просто иметь #include "lib1.h"
#include <lib1/lib1.h> // 3
Этот стиль включений используется для системных заголовков.Вам следует избегать этого, так как большинство программистов привыкли видеть windows.h
или string
или vector
внутри <>
.Вы также говорите компилятору сначала искать эти заголовки в каталогах по умолчанию, а не в ваших собственных.Я бы избегал этого.
Примечание:
Вы должны подумать о такой структуре:
src
+-- lib1
+-- lib1.h
+-- lib2
+-- lib2.h
include
где include
каталог содержит все общедоступные заголовки.Если lib1.h
публично, переместите его туда.Если нет, то ваша структура должна быть в порядке.