无法在Ubuntu 18.04上使用Swift

7

在从swift.org上认真按照Linux安装说明后,我在Ubuntu 18.04机器上遇到一个问题,无法编译任何东西。REPL似乎可以工作,但在编译过程中(调用swift build时)出现以下错误:

/usr/bin/ld: cannot find -lstdc++

完整的错误报告[SR-9093]中有更多细节。我不知道该怎么解决这个问题,其他错误报告中已经提到了类似的问题,例如这个非常古老的错误报告[SR-35]。

我应该怎么办?

谢谢


请注意,您的错误报告有未回复的苹果工程师评论。 - zneak
问题还没有解决吗? - Dinko Pehar
@DinkoPehar 是的,没错! :) - Pop Flamingo
4个回答

4
我假设您已经成功安装了libstdc++并正确设置了权限。但我真的怀疑它是否被正确安装,因为它可能已经被某种形式的损坏所影响。这是因为您没有通过软件包管理器安装libstdc++引起的奇怪问题,导致软件包管理器数据库出现了一些异常,从而影响了整个系统的功能。为什么将某些东西添加到文件夹中会改变任何内容,我不知道为什么会发生这种情况,除非该文件夹是热的,即符号链接到一个程序,该程序对于像简单地将文件复制到文件夹中这样的黑客行为没有容忍度。因此,现在请尝试重新安装libstdc++。以下是再次下载正确程序的链接,与amd64兼容。

http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb

以下是一些有用的链接:

  1. https://ubuntuforums.org/showthread.php?t=1425470
  2. https://ubuntuforums.org/showthread.php?t=808045
  3. https://ubuntuforums.org/showthread.php?t=808045
  4. https://packages.ubuntu.com/search?keywords=libstdc%2B%2B
  5. https://packages.ubuntu.com/xenial/amd64/libstdc++6

1
不幸的是,这似乎也没有起作用。赏金已经结束了,我想感谢你,因为你提供了最完整的答案。我希望它能帮助其他遇到这个问题的人。 - Pop Flamingo

2
安装libstdc++
使用以下命令安装libstdc++6: sudo apt install libstdc++6

谢谢,不幸的是,这已经尝试过了,但没有成功。 - Pop Flamingo

0

看起来可能是因为apt安装没有运行ldconfig程序,应该运行该程序将库添加到ld.so知道的库列表中。

看起来你可以手动操作: sudo ldconfig

重要提示警告:我没有Ubuntu并且无法测试此方法。而且这是一个sudo命令。请自行承担风险,结果可能有所不同等等。

如果这个方法不起作用,可能是因为一个名为/etc/ld.so.conf的文件没有设置搜索libstdc++所在的目录。我不敢尝试描述如何修复它。


-2

sudo apt install -f

上述命令应该安装任何缺失的依赖项。


你好,我也尝试过这个,但是它并没有改变任何东西。 - Pop Flamingo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接