質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

Gentoo Linux

Gentooは、Linuxディストリビューションの1つです。 GTK+で作られてファイルマネージャです。

Q&A

解決済

1回答

797閲覧

Gentooでhaskell-gi。Could not find module ‘GI.GModule.Structs.Module’

apo

総合スコア362

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

Gentoo Linux

Gentooは、Linuxディストリビューションの1つです。 GTK+で作られてファイルマネージャです。

0グッド

0クリップ

投稿2021/05/14 09:00

編集2021/05/14 09:01

前提・実現したいこと

Gentooでhaskell-giを使って公式サイトのHello-Worldを実行したい。

公式サイトの"Hello World"サンプルコードをコンパイル中にエラーとなります。

発生している問題・エラーメッセージ

apo@gentoo ~/Documents/project/make/haskell/haskell-gi_20210514/my-project $ stack build gi-gdkpixbuf> configure gi-gdkpixbuf> [1 of 2] Compiling Main ( /tmp/stack-12c74caaf0fd4f1a/gi-gdkpixbuf-2.0.24/Setup.hs, /tmp/stack-12c74caaf0fd4f1a/gi-gdkpixbuf-2.0.24/.stack-work/dist/x86_64-linux-tinfo6/Cabal-3.2.1.0/setup/Main.o ) gi-gdkpixbuf> [2 of 2] Compiling StackSetupShim ( /home/apo/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack-12c74caaf0fd4f1a/gi-gdkpixbuf-2.0.24/.stack-work/dist/x86_64-linux-tinfo6/Cabal-3.2.1.0/setup/StackSetupShim.o ) gi-gdkpixbuf> Linking /tmp/stack-12c74caaf0fd4f1a/gi-gdkpixbuf-2.0.24/.stack-work/dist/x86_64-linux-tinfo6/Cabal-3.2.1.0/setup/setup ... gi-gdkpixbuf> Configuring gi-gdkpixbuf-2.0.24... gi-gdkpixbuf> build gi-gdkpixbuf> Preprocessing library for gi-gdkpixbuf-2.0.24.. gi-gdkpixbuf> Building library for gi-gdkpixbuf-2.0.24.. gi-gdkpixbuf> [ 1 of 25] Compiling GI.GdkPixbuf.Config gi-gdkpixbuf> [ 2 of 25] Compiling GI.GdkPixbuf.Constants gi-gdkpixbuf> [ 3 of 25] Compiling GI.GdkPixbuf.Enums[boot] gi-gdkpixbuf> [ 4 of 25] Compiling GI.GdkPixbuf.Enums gi-gdkpixbuf> [ 5 of 25] Compiling GI.GdkPixbuf.Flags gi-gdkpixbuf> [ 6 of 25] Compiling GI.GdkPixbuf.Objects.Pixbuf[boot] gi-gdkpixbuf> [ 7 of 25] Compiling GI.GdkPixbuf.Objects.PixbufAnimation[boot] gi-gdkpixbuf> [ 8 of 25] Compiling GI.GdkPixbuf.Objects.PixbufAnimationIter[boot] gi-gdkpixbuf> [ 9 of 25] Compiling GI.GdkPixbuf.Objects.PixbufAnimation gi-gdkpixbuf> [10 of 25] Compiling GI.GdkPixbuf.Objects.PixbufAnimationIter gi-gdkpixbuf> [11 of 25] Compiling GI.GdkPixbuf.Objects.PixbufNonAnim gi-gdkpixbuf> [12 of 25] Compiling GI.GdkPixbuf.Objects.PixbufSimpleAnim gi-gdkpixbuf> [13 of 25] Compiling GI.GdkPixbuf.Objects.PixbufSimpleAnimIter gi-gdkpixbuf> [14 of 25] Compiling GI.GdkPixbuf.Structs.PixbufFormat[boot] gi-gdkpixbuf> [15 of 25] Compiling GI.GdkPixbuf.Objects.PixbufLoader gi-gdkpixbuf> [16 of 25] Compiling GI.GdkPixbuf.Structs.PixbufModule[boot] gi-gdkpixbuf> [17 of 25] Compiling GI.GdkPixbuf.Callbacks gi-gdkpixbuf> [18 of 25] Compiling GI.GdkPixbuf.Objects.Pixbuf gi-gdkpixbuf> [19 of 25] Compiling GI.GdkPixbuf.Objects gi-gdkpixbuf> [20 of 25] Compiling GI.GdkPixbuf.Structs.PixbufModule gi-gdkpixbuf> gi-gdkpixbuf> /tmp/stack-12c74caaf0fd4f1a/gi-gdkpixbuf-2.0.24/GI/GdkPixbuf/Structs/PixbufModule.hs:194:1: error: gi-gdkpixbuf> Could not find module ‘GI.GModule.Structs.Module’ gi-gdkpixbuf> Use -v (or `:set -v` in ghci) to see a list of the files searched for. gi-gdkpixbuf> | gi-gdkpixbuf> 194 | import qualified GI.GModule.Structs.Module as GModule.Module gi-gdkpixbuf> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ gi-gdkpixbuf> Progress 1/4 -- While building package gi-gdkpixbuf-2.0.24 (scroll up to its section to see the error) using: /tmp/stack-12c74caaf0fd4f1a/gi-gdkpixbuf-2.0.24/.stack-work/dist/x86_64-linux-tinfo6/Cabal-3.2.1.0/setup/setup --builddir=.stack-work/dist/x86_64-linux-tinfo6/Cabal-3.2.1.0 build --ghc-options " -fdiagnostics-color=always" Process exited with code: ExitFailure 1

該当のソースコード

Haskell

1{-# LANGUAGE OverloadedStrings, OverloadedLabels #-} 2{- cabal: 3build-depends: base, haskell-gi-base, gi-gtk == 3.0.* 4-} 5 6import qualified GI.Gtk as Gtk 7import Data.GI.Base 8 9main :: IO () 10main = do 11 Gtk.init Nothing 12 13 win <- new Gtk.Window [ #title := "Hi there" ] 14 15 on win #destroy Gtk.mainQuit 16 17 button <- new Gtk.Button [ #label := "Click me" ] 18 19 on button #clicked (set button [ #sensitive := False, 20 #label := "Thanks for clicking me" ]) 21 22 #add win button 23 24 #showAll win 25 26 Gtk.main

試したこと

・ltsを変えて(lts-9.21, lts-12.26)コンパイルしてみたところ、エラーは変わりましたが、改善しませんでした。cabalのバージョンが低い(2.0以下)とのエラーだったのでltsを元の最新に戻しています。
・stack update、stack upgradeを実行してみたが、変化はありませんでした。
・Hoogleで「GI.GModule.Structs.Module」を検索してみましたが、見つかりませんでした。
・GitHubのIssuesを確認してみましたが、関係ありそうな記事はありませんでした。
・「gentoo GI.GModule.Structs.Module」等でググッてみましたが、有用な情報は見つかりませんでした。

補足情報(FW/ツールのバージョンなど)

Gentoo Ver: Gentoo Base System release 2.7
stack: Version 2.7.1, Git revision 8afe0c2932716b0441cf4440d6942c59568b6b19 x86_64 hpack-0.34.4

下記emergeを実行済み

emerge -av gobject-introspection emerge -av dev-libs/gobject-introspection emerge -av dev-libs/gobject-introspection-common emerge -av dev-perl/Glib-Object-Introspection emerge -av x11-libs/gtksourceview emerge -av dev-cpp/gtksourceviewmm emerge -av dev-perl/Gtk2-SourceView2 emerge dev-haskell/haskell-gi-base

全てのソースコード
https://github.com/ringo-apo/haskell-gi_20210514

Debianで上記HelloWorldを実行した際は、問題なく動作していました。

ご教示よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決できました。

https://github.com/haskell-gi/haskell-gi/issues/339
を参考に、「stack.yaml」ファイルを修正したら動きました。

extra-deps: - gtk2hs-buildtools-0.13.8.0 - glib-0.13.8.1 - cairo-0.13.8.1 - pango-0.13.8.1 - gi-gtk-3.0.37 - gi-gdk-3.0.24 - gi-gdkpixbuf-2.0.26 - gi-gmodule-2.0.1 - gi-atk-2.0.23 - gi-cairo-1.0.25 - gi-gio-2.0.28 - gi-gobject-2.0.26 - gi-harfbuzz-0.0.4 - gi-pango-1.0.24 - haskell-gi-0.25.0 - haskell-gi-base-0.25.0 - gi-glib-2.0.25 - reactive-banana-1.2.1.0

すべてのソースコード

投稿2021/05/16 00:54

apo

総合スコア362

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問