Проблемы с установкой бэкенда cairo для ghc haskell с помощью cabal

У меня были некоторые проблемы с установкой бэкенда cairo для ghc с использованием cabal на моем Mac под управлением os x 10.9. Похоже, что пакет cairo-pdf отсутствует в pkg-config. Я попытался переустановить pkg-config с помощью homebrew, но, похоже, это ничего не меняет. Вывод из Кабала выглядит следующим образом:

andylawrence$ cabal install Cairo
Resolving dependencies...
[1 of 2] Compiling SetupWrapper     ( /var/folders/cb/1j0fjp2n4x12b8tfg2cz64vm0000gn/T/cairo-0.12.4-98407/cairo-0.12.4/SetupWrapper.hs, /var/folders/cb/1j0fjp2n4x12b8tfg2cz64vm0000gn/T/cairo-0.12.4-98407/cairo-0.12.4/dist/setup/SetupWrapper.o )
[2 of 2] Compiling Main             ( /var/folders/cb/1j0fjp2n4x12b8tfg2cz64vm0000gn/T/cairo-0.12.4-98407/cairo-0.12.4/Setup.hs, /var/folders/cb/1j0fjp2n4x12b8tfg2cz64vm0000gn/T/cairo-0.12.4-98407/cairo-0.12.4/dist/setup/Main.o )
Linking /var/folders/cb/1j0fjp2n4x12b8tfg2cz64vm0000gn/T/cairo-0.12.4-98407/cairo-0.12.4/dist/setup/setup ...

Gtk2HsSetup.hs:107:59:
     warning: missing terminating ' character [-Winvalid-pp-token]
        -- If there are several .dll files matching the one we're after then we
                                                              ^

Gtk2HsSetup.hs:145:50:
     warning: missing terminating ' character [-Winvalid-pp-token]
             -> RegisterFlags -- ^Install in the user's database?; verbose
                                                     ^

Gtk2HsSetup.hs:210:41:
     warning: missing terminating ' character [-Winvalid-pp-token]
      -- have the header file name if we don't have the precompiled header yet
                                            ^

Gtk2HsSetup.hs:249:40:
     warning: missing terminating ' character [-Winvalid-pp-token]
      mFiles <- mapM (findFileWithExtension' ["chi"] [buildDir lbi] . toFilePath)
                                           ^

Gtk2HsSetup.hs:293:28:
     warning: missing terminating ' character [-Winvalid-pp-token]
                     , let name' = filter isAlpha (display name)
                               ^

Gtk2HsSetup.hs:294:31:
     warning: missing terminating ' character [-Winvalid-pp-token]
                     , tag <- name'
                                  ^

Gtk2HsSetup.hs:295:33:
     warning: missing terminating ' character [-Winvalid-pp-token]
                            : [ name' ++ "-" ++ show major ++ "." ++ show digit
                                    ^
7 warnings generated.
[1 of 2] Compiling Gtk2HsSetup      ( Gtk2HsSetup.hs, dist/setup-wrapper/Gtk2HsSetup.o )
[2 of 2] Compiling Main             ( SetupMain.hs, dist/setup-wrapper/Main.o )
Linking dist/setup-wrapper/setup ...
Configuring cairo-0.12.4...

/var/folders/cb/1j0fjp2n4x12b8tfg2cz64vm0000gn/T/98471.c:1:12:
     warning: control reaches end of non-void function [-Wreturn-type]
int foo() {}
           ^
1 warning generated.
setup: The pkg-config package cairo-pdf is required but it could not be found.
Failed to install cairo-0.12.4
cabal: Error: some packages failed to install:
cairo-0.12.4 failed during the configure step. The exception was:
ExitFailure 1

Любая помощь будет принята с благодарностью.


person Andy Lawrence    schedule 27.11.2013    source источник


Ответы (1)


pkg-config — это просто инструмент, который сообщает вам, установлен ли собственный (т. е. не Haskell) пакет (и какова его конфигурация для целей компиляции). Вам нужно установить cairo-pdf (это может быть отдельный пакет, или это может быть опция, которую нужно включить при сборке нативного cairo, я не уверен. Или может просто у вас нет нативного cairo установлен вообще).

person Robin Green    schedule 27.11.2013
comment
Я установил родной cairo, используя доморощенный. Я не могу найти отдельный пакет с именем cairo-pdf. Это то, что меня действительно сбивает с толку, поскольку в Интернете не так много вещей, относящихся к cairo-pdf. - person Andy Lawrence; 27.11.2013
comment
Я попытался вручную собрать cairo и столкнулся с другой проблемой, связанной с pkg-config. Он не может найти libpng, но он установлен на моей машине. Вывод следующий: проверка функции функций PNG cairo... настроить: ПРЕДУПРЕЖДЕНИЕ: не удалось найти libpng в пути поиска pkg-config, проверяя, можно ли включить функцию функций PNG cairo... нет настройки: ошибка: рекомендуемая функция функций PNG не может быть включенным - person Andy Lawrence; 27.11.2013
comment
Поэтому я предполагаю, что путь поиска pkg-config необходимо добавить. Если вы установили pkg-config и libpng с двумя разными системами упаковки (например, одна установлена ​​OS X или XCode, а другая — доморощенным), это может быть причиной. - person Robin Green; 27.11.2013