2016-09-20 4 views
0

Je souhaite installer la bibliothèque ffmpeg-light depuis hackage via cabal sur Windows 10 (64 bits). J'ai donc téléchargé ffmpeg et l'ai extrait à C: \ FFmpeg.Installez ffmpeg-light avec cabal

Au début, pkg-config se plaignait de ne pas pouvoir trouver plusieurs paquets. J'ai résolu ce problème avec les fichiers .pc.

Lorsque j'ai essayé d'utiliser la commande: cabal install ffmpeg-light cabal s'est plaint des bibliothèques C manquantes, étant exactement celles pour lesquelles j'ai créé les fichiers .pc. Puis j'ai essayé la commande: cabal install ffmpeg-light --extra-lib-dirs=C:\FFmpeg\lib. Maintenant, j'ai un autre message d'erreur qui dit:

Enums.hsc:7:32: fatal error: libavcodec/avcodec.h: No such file or directory 

Edit:
Alors j'ai essayé la commande suivante:

cabal install ffmpeg-light --extra-lib-dirs=C:\FFmpeg\lib \ 
          --extra-include-dirs=C:\FFmpeg\include 

maintenant d'abord le compilateur donne des avertissements sur les fonctions dépréciées dans ffmpeg et les importations redondantes dans ffmpeg-light, mais compile 11 sur 11. Mais la construction n'est toujours pas réussie.

In-place registering ffmpeg-light-0.11.1... 
setup-Simple-Cabal-1.22.5.0-x86_64-windows-ghc-7.10.3.exe: 
'C:\Haskell\bin\ghc-pkg.exe' exited with an error: 
ffmpeg-light-0.11.1: Warning: haddock-interfaces: 
C:\Users\HOLEYC~1\AppData\Local\Temp\cabal-tmp-2824\ffmpeg-light-0.11.1\dist\doc\html\ffmpeg-light\ffmpeg-light.haddock 
doesn't exist or isn't a file 
ffmpeg-light-0.11.1: Warning: haddock-html: 
C:\Users\HOLEYC~1\AppData\Local\Temp\cabal-tmp-2824\ffmpeg-light-0.11.1\dist\doc\html\ffmpeg-light 
doesn't exist or isn't a directory 
ffmpeg-light-0.11.1: library-dirs: C:FFmpeglib is a relative path which makes 
no sense (as there is nothing for it to be relative to). You can make paths 
relative to the package database itself by using ${pkgroot}. (use --force to 
override) 
ffmpeg-light-0.11.1: include-dirs: C:FFmpeginclude is a relative path which 
makes no sense (as there is nothing for it to be relative to). You can make 
paths relative to the package database itself by using ${pkgroot}. (use 
--force to override) 
cabal: Error: some packages failed to install: 
ffmpeg-light-0.11.1 failed during the building phase. The exception was: 
ExitFailure 1 

Quelques informations supplémentaires:

cabal version: cabal-install version 1.22.6.0 
using version 1.22.5.0 of the Cabal library 
gcc version of my installed Haskell platform: 5.2.0 

fichier .pc Exemple j'ai utilisé pour pkg-config:

Name: libavcodec 
Description: Library for ffmpeg 
Version: 57 
Cflags: -IC:\FFmpeg\include 
Libs: -LC:\FFmpeg\lib -llibavcodec 
+0

Vous devez '--extra-include-dirs' dire GHC où trouver le fichier d'en-tête. –

+0

@ Thomas M. DuBuisson: Merci, cela m'a fait un peu plus loin. Edited ma question. – WirflBirfl

+0

Je pense que vous devez échapper à vos barres obliques. Ex: '--extra-include-dirs = C: \\ FFmpeg \\ include' –

Répondre

0

OK. Je l'ai compris. L'option --ghc-pkg-options = "- force" était nécessaire.

cabal install ffmpeg-light --extra-lib-dirs=C:\FFmpeg\lib --extra-include-dirs=C:\FFmpeg\include --ghc-pkg-options="--force"