Где должны находиться библиотеки для процесса разработки?

С библиотеками SDL, например, нужно было бы указывать на заголовки в начале их кода, например:

#include <SDL/SDL.h> 

И, например, при компиляции с GCC библиотека будет иметь быть включенным в:

gcc project.cpp -o project -l/path/to/library/SDL

Итак, когда вы разрабатываете программу с определенной библиотекой для включения, где должны находиться файлы заголовков и библиотека, чтобы GCC мог распознать, откуда взять эту информацию ? Должны ли они храниться в каталоге usr, или вы можете указать GCC указать любое место, которое вы хотите?

Это относится к разработке на Ubuntu, так как это платформа, для которой я разрабатываю, но любая платформа * nix, вероятно, будет похожа.

3
задан 16 May 2015 в 23:11

1 ответ

Компилятор 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

0
ответ дан 16 May 2015 в 23:11

Другие вопросы по тегам:

Похожие вопросы: