在认真遵循swift.org上的Linux安装说明后,我遇到了一个问题,在Ubuntu 18.04机器上无法编译任何东西。REPL似乎可以工作,但在编译期间(调用swift build
时)出现以下错误:
/usr/bin/ld: cannot find -lstdc++
字符串
在完整的bug报告SR-9093(https://bugs.swift.org/browse/SR-9093)中有更多的细节。我根本不知道该怎么解决这个问题,在其他bug报告中已经提到了类似的问题,例如在这个非常旧的bug报告[SR-35]中。
我该怎么办?
4条答案
按热度按时间ekqde3dh1#
我假设您已经成功安装了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
下面是一些帮助链接
b09cbbtk2#
安装libstdc++
第一个月
fnatzsnv3#
似乎 * 可能 * apt安装没有运行
ldconfig
程序,应该运行该程序将库添加到ld.so
所知道的库列表中。看起来你可以手动操作:
sudo ldconfig
重要 * 警告:我没有Ubuntu,还没能测试这个。而且它是一个
sudo
命令。运行风险自担,YMMV等。如果这不起作用,可能是一个名为
/etc/ld.so.conf
的文件没有被设置为搜索libstdc++结束的目录。xkrw2x1b4#
第一个月
上面的命令应该安装任何缺少的依赖项。