1

В Mac OS X 1.7.5 / Lion

Я пытаюсь установить пакет cairo с помощью homebrew

brew install cairo => PASSED

==> Downloading http://cairographics.org/releases/cairo-1.12.16.tar.xz
Already downloaded: /Library/Caches/Homebrew/cairo-1.12.16.tar.xz
==> ./configure --prefix=/usr/local/Cellar/cairo/1.12.16 --with-x --enable-gobject=yes
==> make install
==> Caveats
This formula is keg-only: so it was not symlinked into /usr/local.

Mac OS X already provides this software in versions before Mountain Lion.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/cairo/lib
    CPPFLAGS: -I/usr/local/opt/cairo/include

==> Summary
  /usr/local/Cellar/cairo/1.12.16: 105 files, 8.0M, built in 2.5 minutes

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

+++ Precompile
Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
Package 'cairo', required by 'pangocairo', not found

Поэтому я изменил свой PKG_CONFIG_PATH соответственно

 PKG_CONFIG_PATH=/usr/local/opt/cairo/lib/pkgconfig/:/usr/local/lib/pkgconfig:/usr/X11/lib/pkgconfig/:

(источник .bash_profile)

Пытался снова скомпилировать, но я получаю точно такую же ошибку.

Проверено, что файл присутствовал в этом каталоге pkgconfig ... это так.

ls /usr/local/opt/cairo/lib/pkgconfig/ 
cairo-fc.pc           cairo-gobject.pc      cairo-png.pc          cairo-quartz-font.pc  cairo-script.pc       cairo-xcb-shm.pc      cairo-xlib-xrender.pc cairo.pc
cairo-ft.pc           cairo-pdf.pc          cairo-ps.pc           cairo-quartz.pc       cairo-svg.pc          cairo-xcb.pc          cairo-xlib.pc

Есть ли какие-либо сведения о том, что здесь происходит?

ОБНОВИТЬ

Файл cairo.pc находится в других местах моей системы. Я попытался использовать каждое местоположение в моем пути конфигурации pgg без успеха

find /usr -name cairo.pc 
/usr/local/Cellar/cairo/1.12.16/lib/pkgconfig/cairo.pc
/usr/X11/lib/pkgconfig/cairo.pc

pkg-config --variable pc_path pkg-config
/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/pkgconfig

Я заметил, что pkg-config все еще не ищет .pc в правильной папке, несмотря на то, что моя переменная окружения имеет правильные пути (?) (PKG_CONGIG_PATH)

2 ответа2

1

ln -s /usr/local/Cellar/cairo/1.12.16/lib/pkgconfig/cairo.pc /usr/local/lib/pkgconfig/cairo.pc

решил мою проблему

0

Я только столкнулся с этой проблемой и смог решить ее (пока, по крайней мере).

This formula is keg-only: so it was not symlinked into /usr/local.

Из того, что я понимаю, это означает, что cairo уже был установлен вашей системой (на самом деле он установлен в /usr /X11), и Homebrew не хотел с ним связываться. Я могу только предположить, что это связано с тем, что уже существующие пакеты находят нужные версии. Как объясняется в FAQ по Homebrew: «Мы не делаем это по глупым причинам».

У Homebrew есть link на инструмент, которая является кратким обозначением того, каким был ваш ответ.

$ brew link cairo --force

В этом случае нам нужно передать --force , обычно это не нужно. Brew также имеет unlink , что приятно.

Я столкнулся с другой проблемой, которая, я думаю, не слишком далека от темы. Cairo зависел от файлов, которые находятся только в моей папке /usr /X11, что означало, что link не будет работать. Теперь пришло время экспортировать PKG_CONFIG_PATH.

$ export PKG_CONFIG_PATH=/usr/x11/lib/pkgconfig

Однако это вызвало другую проблему: pkgconfig теперь находил Cairo внутри /usr /x11 до Cairo, который я установил (и связал вручную) с помощью brew. Чтобы наконец-то получить pkg-config --cflags gtkmm-3.0 , мне нужно было убедиться, что PKG_CONFIG_PATH сначала посмотрел на /usr /local /lib /pkgconfig:

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:/usr/X11/lib/pkgconfig

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .