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

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

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

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

Gentoo Linux

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

Q&A

解決済

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

apo
apo

総合スコア348

Haskell

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

Gentoo Linux

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

1回答

0グッド

0クリップ

497閲覧

投稿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を実行した際は、問題なく動作していました。

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

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

1

自己解決

自己解決できました。

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

総合スコア348

tatsuya6502👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Haskell

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

Gentoo Linux

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