Как установить приоритет конфликтующих заголовков c ++

Представьте, что у вас есть два something.h в двух разных
каталогах. Вы не можете писать в эти каталоги и не иметь
root-доступа.

У вас есть код, который делает:

```
#include 

```

Как вы определяете использование something.h в определенном
каталоге и игнорируете другое?

Как правило, список каталогов, которые имеют право на поиск
того, что считается системой, включает (с использованием угловых
скобок в #include), предоставляется как набор `-I` для
компилятора. Часто они включают каталоги, указанные в make-файлах
или файлах проекта.

Многие (но не обязательно все) компиляторы будут соблюдать
порядок каталогов, перечисленных как включенные каталоги, поэтому
вы должны быть в состоянии выбрать свое предпочтение, изменив этот
порядок в своих файлах make-файлов. Однако в некоторых компиляторах
это может быть сложно, так как некоторые каталоги считаются всегда
включенными (например, gcc по умолчанию предполагает, что вы
включили `/usr/include` ). Другими словами, это очень
специфическая реализация.

Если вы используете не угловые скобки, а двойные кавычки, вы
можете просто указать нужный файл прямо как `#include
"dir/file.h"` .



попробуйте использовать:  

`#include "../ directory/something.h"`  

Обратите внимание, что GCC ищет заголовки, используя [путь поиска](https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html#Search-Path) .  

Вы также можете попросить GCC искать файлы заголовков в указанных
каталогах. Используйте `-iquote dir` , чтобы добавить
каталог `dir` в список списка каталогов для поиска
файлов заголовков.