我在Windows上使用ghci+cairo遇到了问题。例如,当我尝试像这样加载时“ghci -package cairo”,它会失败并显示以下错误:
我使用'filemon'查看了"ghci"加载了什么,日志中我可以看到已找到并成功加载了'libcairo-2.dll'(并且该库定义了'_cairo_surface_destroy'符号),因此我真的不明白——它还想要什么?
Loading package random-1.0.0.2 ... linking ... done. Loading package haskell98 ... linking ... done. Loading package syb-0.1.0.2 ... linking ... done. Loading package base-3.0.3.2 ... linking ... done. Loading package mtl-1.1.0.2 ... linking ... done. : C:\Users\alexeys\AppData\Roaming\cabal\cairo-0.12.0\ghc-6.12.3\HScairo-0.12.0.o: unknown symbol `_cairo_surface_destroy' Loading package cairo-0.12.0 ... linking ... : unable to load package `cairo-0.12.0'即使是最简单的程序也无法在交互模式下工作,比如cairo包中附带的'Text.hs'文件。然而,编译后用'ghc --make'一切正常,所以这不是“缺少dll”的问题——一切都在正确的位置。
我使用'filemon'查看了"ghci"加载了什么,日志中我可以看到已找到并成功加载了'libcairo-2.dll'(并且该库定义了'_cairo_surface_destroy'符号),因此我真的不明白——它还想要什么?
stdcall
/ccall
不匹配。DLL 中的符号名称是否有像@4
这样的后缀? - Simon Marlow