Как добавить каталог в заголовок C include include?

У меня возникли проблемы с установкой зависимости для программы, которая сама зависит от pcre.h. У меня это установлено в /opt/local/include, но компилятор C его не видит и тем самым дает мне:

error: pcre.h: Нет такого файла или каталога

Я подтвердил это, написав приветственную программу мира, которая пытается ее включить:

#include <pcre.h>
#include <stdio.h>

int main(void)
{
    printf("hello, world\n");
    return 0;
}

Это также дает ошибку, если я не укажу путь как </opt/local/include/pcre.h>.

Я хотел бы, чтобы компилятор C обнаружил это по умолчанию, но я не знаю, где это настроено. Завершение табуляции не выявило каких-либо переменных среды HEADER_PATH, и я не могу найти ничего подобного, что не относится к XCode. Тем не менее, я использую Mac OSX Snow Leopard со случайностью, которая имеет значение.

Ответ 1

Используйте -I /opt/local/include в командной строке или C_INCLUDE_PATH=/opt/local/include в среде.

Ответ 2

Используйте утилиту pcre-config для получения правильных флагов:

$ pcre-config --libs --cflags
-L/opt/local/lib -lpcre
-I/opt/local/include

Если вы компилируете через командную строку,

$ gcc -Wall -g `pcre-config --libs --cflags` main.c