С библиотеками SDL, например, нужно было бы указывать на заголовки в начале их кода, например:
#include <SDL/SDL.h>
И, например, при компиляции с GCC библиотека будет иметь быть включенным в:
gcc project.cpp -o project -l/path/to/library/SDL
Итак, когда вы разрабатываете программу с определенной библиотекой для включения, где должны находиться файлы заголовков и библиотека, чтобы GCC мог распознать, откуда взять эту информацию ? Должны ли они храниться в каталоге usr, или вы можете указать GCC указать любое место, которое вы хотите?
Это относится к разработке на Ubuntu, так как это платформа, для которой я разрабатываю, но любая платформа * nix, вероятно, будет похожа.
Компилятор GCC будет искать заголовки в зависимости от того, как Вы объявляете заголовок, таким образом, существует две возможности
#include <math.h>
В этом случае компилятор будет искать в системных местоположениях заголовка по умолчанию в Ubuntu, который это
/usr/local/include
/usr/target/include
/usr/include
Поэтому, если Ваша необходимая библиотека имеет свой заголовочный файл в одном из тех местоположений, GCC должен найти его по умолчанию.
#include "myheader.h"
или
#include "myheaders/header.h"
В этом случае компилятор посмотрит в том же каталоге, как Ваш.c файл, если Вы не говорите gcc смотреть где-то в другом месте при помощи -Idir
, Дополнительная информация опции
может быть найдена в этой статье [приблизительно 117] Компиляцию, соединение, Make-файл, заголовочные файлы на gribblelab.org