Как подключать.h файлы во вложенных папках?
Просто мимо проходил. 
Я бы советовал использовать вместо #pragma once классические include guards. На то есть несколько причин (и почти все они неважны, если вы под виндой)
1. Статический анализатор clang часто используется внутри разных IDE и редакторов, просто запуская анализ для каждого файла проекта. Воспримая хедер как файл реализации он обязательно ругнется на прагму, чего в случае с обычными гвардами не произойдет
2. GCC имеет отдельную оптимизацию дерева сборки, основанную на гвардах, прагмы же не обрабатываются.
3. Если у вас в проекте несколько симлинков (скажем билдсистема построила по каким-то нуждам) на один хедер - то прагма не поможет, все упадет.
В начале каждого заголовочного файла пишем#pragma once
Подробнее https://ru.wikipedia.org/wiki/Pragma_once
Можно указать компилятору папки в которых искать заголовочники
https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html
и подключать их через <> кавычки
Или прописывать абсолютные или относительные пути в "" кавычках