Haskell ghc,尝试使用 ghc 和 Euterpea 编译程序时出现链接错误
Haskell ghc, linking error when trying to compile a program using ghc and Euterpea
我正在查看计算音乐开发库 Euterpea,我正在尝试编译以下基本程序:
import Euterpea
t251 :: Music Pitch
t251 = let dMinor = d 4 wn :=: f 4 wn :=: a 4 wn
gMajor = g 4 wn :=: b 4 wn :=: d 5 wn
cMajor = c 4 bn :=: e 4 bn :=: g 4 bn
in dMinor :+: gMajor :+: cMajor
main = play t251
该程序在 ghci 中运行良好,但是当我尝试使用 ghc test.hs
编译它时,我收到以下错误消息:
Linking test ... /usr/bin/ld:
/home/fayong/.cabal/lib/PortMidi-0.1.3/ghc-7.6.3/libHSPortMidi-0.1.3.a(ptlinux.o):
undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO
missing from command line collect2: error: ld returned 1 exit status
这似乎是一个链接错误,但我不知道如何修复它。我试图将 -lpthread
作为选项传递,但它也没有用。
我通过 cabal 在 linux mint 17[ 上安装了 Euterpea =15=]
我遇到了同样的错误,并通过 运行 ghc 使用“-threaded”选项修复了它。我认为这与最近更新该剧有关,但我将不得不进一步研究它。
我正在查看计算音乐开发库 Euterpea,我正在尝试编译以下基本程序:
import Euterpea
t251 :: Music Pitch
t251 = let dMinor = d 4 wn :=: f 4 wn :=: a 4 wn
gMajor = g 4 wn :=: b 4 wn :=: d 5 wn
cMajor = c 4 bn :=: e 4 bn :=: g 4 bn
in dMinor :+: gMajor :+: cMajor
main = play t251
该程序在 ghci 中运行良好,但是当我尝试使用 ghc test.hs
编译它时,我收到以下错误消息:
Linking test ... /usr/bin/ld: /home/fayong/.cabal/lib/PortMidi-0.1.3/ghc-7.6.3/libHSPortMidi-0.1.3.a(ptlinux.o): undefined reference to symbol 'pthread_create@@GLIBC_2.2.5' //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status
这似乎是一个链接错误,但我不知道如何修复它。我试图将 -lpthread
作为选项传递,但它也没有用。
我通过 cabal 在 linux mint 17[ 上安装了 Euterpea =15=]
我遇到了同样的错误,并通过 运行 ghc 使用“-threaded”选项修复了它。我认为这与最近更新该剧有关,但我将不得不进一步研究它。