Неопределенные ссылки и ошибка gcc при сборке исполняемого файла Haskell с помощью cabal? - PullRequest
0 голосов
/ 08 мая 2019

Я настроил простой проект Cabal, чтобы попытаться лучше познакомиться с ним, и у меня есть очень простой файл Main.hs:

main :: IO ()
main = putStrLn "Hello, World!"

Итак, я пытаюсь построить его, используя cabal new-configure а затем cabal new-build.У команды configure нет проблем, но при ее сборке это выглядит так:

[1 of 1] Compiling Main             ( Main.hs, /home/redacted/Documents/Haskell/nixtut/dist-newstyle/build/x86_64-linux/ghc-8.0.1/newp-0.1.0.0/x/newp/build/newp/newp-tmp/Main.o )
Linking /home/daniel/Documents/Haskell/nixtut/dist-newstyle/build/x86_64-linux/ghc-8.0.1/newp-0.1.0.0/x/newp/build/newp/newp ...
/nix/store/6yjpyqkx6d9k5f2s2g8h9kz40q6rz1yx-binutils-2.31.1/bin/ld: //nix/store/siks2gcfwx6qwh27m7c5r5lixcr621bd-glibc-2.27/lib/libpthread.so.0: undefined reference to `_IO_enable_locks@GLIBC_PRIVATE'
/nix/store/6yjpyqkx6d9k5f2s2g8h9kz40q6rz1yx-binutils-2.31.1/bin/ld: //nix/store/siks2gcfwx6qwh27m7c5r5lixcr621bd-glibc-2.27/lib/libpthread.so.0: undefined reference to `__mmap@GLIBC_PRIVATE'
/nix/store/6yjpyqkx6d9k5f2s2g8h9kz40q6rz1yx-binutils-2.31.1/bin/ld: //nix/store/siks2gcfwx6qwh27m7c5r5lixcr621bd-glibc-2.27/lib/libpthread.so.0: undefined reference to `__munmap@GLIBC_PRIVATE'
/nix/store/6yjpyqkx6d9k5f2s2g8h9kz40q6rz1yx-binutils-2.31.1/bin/ld: //nix/store/siks2gcfwx6qwh27m7c5r5lixcr621bd-glibc-2.27/lib/libpthread.so.0: undefined reference to `__mprotect@GLIBC_PRIVATE'
/nix/store/6yjpyqkx6d9k5f2s2g8h9kz40q6rz1yx-binutils-2.31.1/bin/ld: //nix/store/siks2gcfwx6qwh27m7c5r5lixcr621bd-glibc-2.27/lib/libpthread.so.0: undefined reference to `__tunable_get_val@GLIBC_PRIVATE'
/nix/store/6yjpyqkx6d9k5f2s2g8h9kz40q6rz1yx-binutils-2.31.1/bin/ld: //nix/store/siks2gcfwx6qwh27m7c5r5lixcr621bd-glibc-2.27/lib/libpthread.so.0: undefined reference to `__sigtimedwait@GLIBC_PRIVATE'
collect2: error: ld returned 1 exit status
`gcc' failed in phase `Linker'. (Exit code: 1)

Вот мой файл .cabal:

name:                newp
version:             0.1.0.0
synopsis:            toying around
-- description:
homepage:            none
-- bug-reports:
license:             BSD-3-Clause
license-file:        LICENSE
author:              redacted
maintainer:          none
-- copyright:
category:            practice
extra-source-files:  CHANGELOG.md

executable newp
  main-is:             Main.hs
  --other-modules:
  -- other-extensions:
  build-depends:       base ^>=4.9.0.0
  -- hs-source-dirs:
  default-language:    Haskell2010

Кажется, я не понимаю, в чем дело.GCC установлен, я не пытаюсь связать какую-либо внешнюю библиотеку, я не использую другие модули, я понятия не имею, на что ссылаются эти ссылки.

Любая помощь приветствуется, потому что, честно говоря, яне знаю, с чего начать.Я пытался смотреть онлайн, но все ситуации разные, и решения, кажется, не относятся ко мне.Я заметил, что для других подобная ошибка возникает, когда есть проблема со связыванием или не включением модулей в файл cabal, но я не уверен, как или если это применимо здесь.

1 Ответ

1 голос
/ 09 мая 2019

Хотя у меня нет однозначного ответа на вопрос, почему произошла ошибка, после переустановки nix я наконец смог собрать проект. Так что проблема была не с кликой.

...