gpt4 book ai didi

haskell - 我怎么知道需要哪个 libstdc++ 双重转换?

转载 作者:行者123 更新时间:2023-12-04 06:11:12 25 4
gpt4 key购买 nike

这是我在尝试将 .hs 文件加载到 ghci 时看到的错误。

>Loading package http-enumerator-0.7.1.1 ... linking ... done.
>Loading package double-conversion-0.2.0.1 ... can't load .so/.DLL for: stdc++ ?>>> (libstdc++.so: cannot open shared object file: No such file or directory)

进一步调查显示我安装了多个 stdc++ 库
>locate libstdc++.so
>/usr/lib/libstdc++.so.6
>/usr/lib/libstdc++.so.6.0.14
>/usr/lib/gcc/x86_64-linux-gnu/4.4/libstdc++.so
>/usr/lib32/libstdc++.so.6
>/usr/lib32/libstdc++.so.6.0.14

我想也许我可以对它想要的东西做一个符号链接(symbolic link),但我不知道是哪个。我正在使用这个操作系统
2.6.35-22-server #33-Ubuntu SMP Sun Sep 19 20:48:58 UTC 2010 x86_64 GNU/Linux

我怎么能准确地说出它想要什么?

最佳答案

/usr/lib/libstdc++.so.6应该是 /usr/lib/libstdc++.so.6.0.14 的符号链接(symbolic link).这可能是您需要的版本。
/usr/lib32/libstdc++.so.6应该是 /usr/lib32/libstdc++.so.6.0.14 的符号链接(symbolic link),它们适用于 32 位程序,您通常不需要它们。
/usr/lib/gcc/x86_64-linux-gnu/4.4/libstdc++.so是问题所在。
double-conversion-0.2.0.1可能已经链接到它,并且ghci找不到。通常所有内容都应链接到 libstdc++.so.6 ,而不是 libstdc++.so没有版本后缀。

我认为不应该有一个没有版本的 libstdc++.so在系统的任何地方。 (例如,我的 gentoo 盒子上没有。)这很危险,因为 libstdc++ 的不同主要版本通常是二进制不兼容的。尝试删除 /usr/lib/gcc/ 下的库,然后重新安装gcc看看它是否再次安装。

如果它确实安装了,那么一个名为 /usr/lib/libstdc++.so 的符号链接(symbolic link)指向/usr/lib/libstdc++.so.6应该解决这个问题。不过,我不确定从长远来看这是否是解决问题的正确方法。

这些是我通过自己的 Linux 机器实验发现的。我不是 Ubuntu 的专家,它的做事方式可能与其他 Linux 不同。

关于haskell - 我怎么知道需要哪个 libstdc++ 双重转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7761880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com