如何在 Ubuntu 11.10 上构建较旧的 gcc(特别是 4.5.2)并避免有关“/usr/bin/ld:找不到 crti.o:没有此类文件或目录”的错误?
我做了一些挖掘,发现了几个类似的项目,但没有一个能真正解决我的问题:
使用 strace 运行时(根据这个答案),我可以看到对 crti.o 的引用:
13240 open(“crti.o”,O_RDONLY)= -1 ENOENT(没有这样的文件或目录)
谢谢!
ams*_*ams 10
即使是非常新版本的 GCC 也会因该消息而失败。这是因为新的 Debian/Ubuntu 版本(将)支持 multiarch(即在一个文件系统中为多台机器安装二进制文件),所以库已从标准位置移开。
有GCC补丁来修复它在这里(尚未批准的最终版本,但正确的Ubuntu),他们可能适用于旧的GCC没有太多的精力,也许。我认为您需要使用--enable-multiarch或其他东西来配置 GCC 。
同时,创建软链接是一个很好的修复:
cd /usr/lib
ln -s x86_64-linux-gnu/crt*.o .
Run Code Online (Sandbox Code Playgroud)
(文件夹名称在 32 位安装上会有所不同)。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
12965 次 |
| 最近记录: |