« références non définies » Contexte
Actuellement, je travaille sur un projet qui traite de la vision par ordinateur.
J'utilise ..
- Haskell comme langage de programmation.
- GTK + pour la création de l'interface graphique.
- FFmpeg pour lire et extraire des vidéos/images de chemins ou de la webcam.
- certains algorithmes pour la détection des contours.Haskell Plate-forme/Cabal - Installation du paquet « haskell-gi » échoue tout en reliant en raison de
Je veux ..
- rendu des vidéos (vidéo d'entrée non modifiée, aswell comme la vidéo de sortie modifiée) à un DrawingArea-widget qui fait partie de la bibliothèque GTK.
Ma configuration
- Windows 10 - 64 bits
- MSYS2/Mingw32
- Haskell Plate-forme (GHC 8.0.1)
- Cabal version 1.24.0.0
- ffmpeg-lumière 0,12. 0
- gtk-0.14.6
problème
pour rendre des vidéos avec GTK-je installer des liaisons pour les GI, alors j'ai essayé d'installer le paquet 'haskell-gi' mais il échoue à la phase de liaison en raison de références non définies.
Exemple
Après l'exécution cabal install haskell-gi
i get:
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x19d8): undefined reference to `g_irepository_require'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x1f59): undefined reference to `g_typelib_symbol'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x26f3): undefined reference to `g_irepository_prepend_search_path'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x2bee): undefined reference to `g_base_info_gtype_get_type'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x2f2e): undefined reference to `g_irepository_find_by_name'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x42c7): undefined reference to `g_struct_info_get_field'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x460b): undefined reference to `g_struct_info_get_n_fields'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x4775): undefined reference to `g_struct_info_get_size'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x4aef): undefined reference to `g_union_info_get_field'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x4e33): undefined reference to `g_union_info_get_n_fields'
C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3\dist\build/libHShaskell-gi-0.20.3-4ylmwt0eEVy4Aeczi0KBpN.a(LibGIRepository.o):fake:(.text+0x4f9d): undefined reference to `g_union_info_get_size'
collect2.exe: error: ld returned 1 exit status
`gcc.exe' failed in phase `Linker'. (Exit code: 1)
cabal: Leaving directory 'C:\Users\Roland\AppData\Local\Temp\cabal-tmp-1788\haskell-gi-0.20.3'
cabal: Error: some packages failed to install:
haskell-gi-0.20.3 failed during the building phase. The exception was:
ExitFailure 1
Remarque
Cette références non définies sont des méthodes qui sont définies dans .c/.h-fichiers qui font partie de GObjects' dossier gobject-introspection.
Qu'ai-je déjà essayé?
Lors de l'installation de Gtk2Hs et ffmpeg-light, je faisais face à des problèmes similaires mais j'ai pu me débarrasser de
- télécharger les fichiers source de développement et ajouter --extra-include-dir ou --extra- balises lib-dir à l'installation cabale
- l'ajout d'indicateurs de liaison (pkg-config---libs GObject introspection 1.0) aux paramètres cabale
- téléchargement de bibliothèques manquantes et de les ajouter au PATH
- modification des fichiers .pc (qui font partie du package-config)
Aucune des options ci-dessus a travaillé avec 'haskell-gi'. J'ai également cherché SO pour des choses liées, mais cela n'a pas fonctionné aussi.
Question
Est-ce que quelqu'un d'entre vous avez une idée de comment surmonter ce problème? Toute aide appréciée.