2012-02-25 1 views
2

У меня есть библиотека pcre, установленная через порты в/opt.macos - как сказать cabal/ghc посмотреть/выбрать библиотеки/включить файлы?

Я пытаюсь установить PCRE-свет, но cabal install pcre-light отчеты:

Resolving dependencies... 
Configuring pcre-light-0.4... 
Preprocessing library pcre-light-0.4... 
Base.hsc:103:18: error: pcre.h: No such file or directory 
... 

pcre.h находится в/Opt/местные/включить

Обновление: У меня была проблема увязки с PCRE библиотека, предоставляемая macports, поэтому я переключился на использование домашнего варева.

ответ

4

http://www.haskell.org/ghc/docs/7.0.2/html/Cabal/builders.html

--extra-include-каталоги [= DIR] Дополнительный каталог для поиска заголовочных файлов C. Вы можете использовать этот флаг несколько раз, чтобы получить список каталогов.

Возможно, вам понадобится использовать этот флаг, если у вас есть стандартные файлы системных заголовков в нестандартном местоположении, которые не указаны в файле .cabal. Использование этой опции имеет такое же влияние, как добавление каталога dir в поле include-dirs в каждой библиотеке и исполняемый файл в файле .cabal. Преимущество, конечно, в том, что вам не нужно вообще модифицировать пакет. Эти дополнительные каталоги будут использоваться при создании пакета, а для библиотек он также сохраняется в информации о регистрации пакета и используется при компиляции модулей, которые используют библиотеку.

+0

Спасибо - я также изменил свой файл ~/.cabal/config, чтобы включить эти настройки. – ErikR

+1

Работал и для меня! У меня OS X 10.10 и PCRE установлены через Homebrew. Однако модификация '~/.cabal/config' не помогла с песочницей, я должен был явно добавить эту опцию в командную строку. –