Некоторый фон
Хорошо, есть два набора включаемых путей поиска.
Пользовательский путь включения:
Обычно это только текущий каталог (также известный как ".").
Примечание: это могут быть и другие, но для простоты давайте просто используем "."в приведенных ниже примерах.
Тогда есть системный путь включения:
Обычно это несколько мест на ваших машинах (это могут быть / usr / include и / usr/local/include).
Примечание: это могут быть и другие, но для простоты давайте просто предположим это в примерах ниже.
Как это обычно работает.
Есть предостереженияи не все компиляторы работают точно так же.Но вот хорошие эмпирические правила.
Когда вы включаете файл с кавычками ""
.
#include "yourHeader.h"
Он будет искать этот файл во всех каталогах, указанных в "пользователь включает путь ".Если он не может найти их там, он будет искать во всех каталогах, указанных в «пути включения системы».Таким образом, ваш компилятор будет искать следующие файлы:
./yourHeader.h
/usr/include/yourHeader.h
/usr/local/include/yourHeader.h
Он будет использовать первый найденный файл.
Когда вы используете <>
в include:
#include <FL/Blah.h>
Сначала будет выполнен поиск файлов в «пути включения системы».Затем, в зависимости от вашего компилятора, при желании можно выполнить поиск по «пути включения пользователя» (но давайте предположим, что не сейчас).
Так что в этом случае он будет искать файлы:
/usr/include/FL/Blah.h
/usr/local/include/FL/Blah.h
Itбудет использовать первый найденный файл.
Изменение значения по умолчанию
Таким образом, это пути по умолчанию для поиска файла.Но ваш компилятор позволит вам добавить дополнительные пути к обоим из этих путей поиска (обычно).Как добавить пути поиска, зависит от вашего компилятора.
Для gcc (и, вероятно, clang) он использует -I
и -isystem
(и, вероятно, больше)
Ожидания.
Когда вы видите <>
в заголовке включения, это обычно означает, что это уже установленная библиотека, которую вы ищете.Таким образом, ваш код предполагает, что на вашем компьютере уже установлена библиотека FLTK
.
Когда вы видите ""
в заголовке include, вы должны предполагать, что это локальный файл, принадлежащий проекту.