Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc 黑客软件包“双重转换”中未定义的符号`_Gcc_Haskell_Ghc - Fatal编程技术网

Gcc 黑客软件包“双重转换”中未定义的符号`

Gcc 黑客软件包“双重转换”中未定义的符号`,gcc,haskell,ghc,Gcc,Haskell,Ghc,我正试图从Hackage构建双转换包。它构建正常,但ghci无法加载它。投诉是: Loading package double-conversion-0.2.0.0 ... linking ... <interactive>: /home/me/.cabal/lib/double-conversion-0.2.0.0/ghc-7.0.4/HSdouble-conversion-0.2.0.0.o: unknown symbol `_ZNK17double_conversion6D

我正试图从Hackage构建
双转换
包。它构建正常,但ghci无法加载它。投诉是:

Loading package double-conversion-0.2.0.0 ... linking ... <interactive>: 
/home/me/.cabal/lib/double-conversion-0.2.0.0/ghc-7.0.4/HSdouble-conversion-0.2.0.0.o: 
unknown symbol `_ZNK17double_conversion6Double5valueEv'
这是文件中唯一的弱符号,事实上,据我所知,在GHC编译包的整个世界中

问题函数显然是FFI,用C++编写,定义为内联在<代码>双转换/SRC/Dou.H./C>。它不是唯一的内联函数,但只有这个函数被标记为弱函数

作为一种权宜之计,我已经将函数移出了行,包现在可以加载了。但很明显,这里面有些问题。为什么这个功能很弱?为什么其他功能不可用?ghc是否应该抱怨弱符号?我是否应该提交一个bug,如果是,谁应该得到它(双重转换、gcc、ghc、其他人?)


系统数据:Gentoo Linux、gcc-4.4.5、ghc-7.0.4、cabal-1.10.2.0。

ghc Trac上的这张票证看起来相关:。这看起来像是Gentoo(或者可能是GCC4.4)特有的问题-所讨论的
.o
文件在我的系统上不包含任何弱符号(我使用GCC4.5.2和GHC7.0.3/7.0.4在Ubuntu Natty上进行了测试)。我建议你在GHC Trac上登记。顺便说一句,我可以复制#5289。

这不仅仅是GHCi。依赖于
双重转换的软件包也不会安装(最终我尝试构建
yesod
)。错误信息也不同。有趣<代码>阴谋集团安装文本转换
对我来说很有效,所以这可能是Gentoo特有的问题
nm
在我的系统上的
HSdouble-conversion-0.2.0.0.o
中没有显示任何弱符号。您使用哪个版本的ghc和gcc?修复弱符号问题后,我将在GHCi中获得浮点异常,如#5289中所示。所以我想这两者没有关系。我将尝试使用另一个gcc进行构建。使用gcc-4.6.0进行了尝试,确实没有弱符号。无论如何,我认为GHC应该能够处理弱符号(它们出现在例如使用C++模板的代码中)。如果你尝试安装<代码>文本格式,你会得到什么错误?也许是的,你试图使用Haskell模板的双重转换?你试过使用覆盖吗?@monadic:我实际上是在使用覆盖,但失败后我尝试了local
cabal安装
。错误消息是相同的@米哈伊尔·格鲁申科夫:我实际上可以安装
文本格式
,但不能安装
yesod
。错误信息是一样的。我在Ubuntu-10.04上的ghc-7.6.3上遇到了同样的问题,当时我正试图构建一个使用cabal的双重转换的包。Ghci也失败了。令我惊讶的是,简单的ghc——make对我来说很有效。
nm /home/me/.cabal/lib/double-conversion-0.2.0.0/ghc-7.0.4/HSdouble-conversion-0.2.0.0.o \
    | grep _ZNK17double_conversion6Double5valueEv
00000000 W _ZNK17double_conversion6Double5valueEv