/usr/bin/ld: 在尝试“快速构建”Perfect2 项目时找不到适用于 Ubuntu 的 -lstdc++

Posted

技术标签:

【中文标题】/usr/bin/ld: 在尝试“快速构建”Perfect2 项目时找不到适用于 Ubuntu 的 -lstdc++【英文标题】:/usr/bin/ld: cannot find -lstdc++ for Ubuntu while trying to "swift build" Perfect2 project 【发布时间】:2016-11-24 16:18:04 【问题描述】:

说明:

我已按照Swift3 和Perfect2 的安装步骤进行操作 我已经克隆了Perfect提出的PerfectTemplate测试项目,我已经尝试过swift build

错误信息:

警告:建议的最低 clang 版本为 3.6,否则您可能会 遇到链接器错误。链接 ./.build/debug/PerfectTemplate /usr/bin/ld: 找不到 -lstdc++ clang: 错误: 链接器命令失败 退出代码 1(使用 -v 查看调用):0:错误:链接 命令失败,退出代码为 1(使用 -v 查看调用) :0:错误:构建有1个命令失败错误:退出(1): /etc/swift301/usr/bin/swift-build-tool -f /home/XXXX/ClionProjects/PerfectTemplate/.build/debug.yaml

我尝试过的:

我已经解决了不同的 SO 问题,这些问题看起来很相似,但都针对不同的项目,并试图尝试他们的解决方案但没有运气:

例如:

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

我还注意到来自 clang 版本的警告,我知道我当前的版本是 3.4,但这是通过 sudo apt-get install clang 安装的,如文档中所述。

我也试过安装 3.6 版本的 clang:sudo apt-get install clang-3.n

但是,当我再次尝试swift build 后,我收到以下错误:

错误:推断的工具链无效:找不到clang

问题:

如何消除/usr/bin/ld: cannot find -lstdc++ 错误,以便构建 PerfectTemplate 项目?

【问题讨论】:

【参考方案1】:

试试这个。它可能不起作用,但值得一试。

更新包和依赖项:

sudo apt-get update

然后安装clang 3.6:

sudo apt-get install clang-3.6
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.6 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.6 100

我希望这会有所帮助,但如果没有,我深表歉意。祝你好运!


如果出现此错误:

/usr/bin/ld.gold:错误:无法打开 /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../libstdc++.‌​so:否 这样的文件或目录

libstdc++.so 符号链接很可能指向一个不存在的文件。

在我的例子中,它指向:

/usr/lib/libstdc++.so -> /usr/lib/libstdc++.so.6

这是不正确的,因为该区域不存在libstdc++.so.6。只需通过sudo find / -name libstdc++.so.6 找到它的位置,这给了我:

/usr/lib/x86_64-linux-gnu/libstdc++.so.6

然后重新创建链接:

sudo rm /usr/lib/libstdc++.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/libstdc++.so

【讨论】:

嗯,这很好。谢谢。我收到一个新错误“/usr/bin/ld.gold: error: cannot open /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../ libstdc++.so:没有这样的文件或目录”有什么想法吗? 尝试 cd 进入它在错误中给出的目录,然后 apt-get 安装丢失的文件。我不确定错误的具体细节,但很明显你遗漏了一些东西。因此,请尝试 cd-ing down 和 apt-get install libstdc++.so ....根据您在上面放置的内容,这将是我对您缺少的内容的第一个猜测。 看起来是这样。当我快速构建时,我没有收到任何错误。我将在本周晚些时候测试运行,如果出现更多问题,我会通知您。谢谢你的帮助! 不客气!我很高兴你让它工作了。做得好!如果还有其他问题,请随时与我们联系,如果可以,我很乐意提供帮助。【参考方案2】:
sudo apt-get install build-essential

【讨论】:

【参考方案3】:

我遇到了同样的问题,更新替代方案对我没有帮助,但是在之后

sudo apt-get update && sudo apt-get upgrade

快速构建运行成功。看起来某些依赖项已被弃用。

【讨论】:

以上是关于/usr/bin/ld: 在尝试“快速构建”Perfect2 项目时找不到适用于 Ubuntu 的 -lstdc++的主要内容,如果未能解决你的问题,请参考以下文章

/usr/bin/ld 找不到 -lbsd

编译错误:/ usr / bin / ld:找不到-lclntsh

/usr/bin/ld: 找不到 -lfreetype qt

/usr/bin/ld: 无法打开输出文件 bin/genericMatching: 没有这样的文件或目录

/usr/bin/ld: 找不到 -l-L/usr/lib

编译错误 /usr/bin/ld: 无法打开输出文件 bin/server: 没有这样的文件或目录