Homebrew链接失败,不兼容的i386文件已经在机器上



我尝试安装的任何东西都遇到这个错误。

机器正在运行redhat并且devops已经在非标准位置安装了新版本的程序/组件。我只有用户级别的访问权限。我已经强迫homebrew使用curl和git的非标准位置,但我不知道如何指向一个新版本的gcc,或者告诉它在链接器中添加选项来处理旧的(glibc?)文件。

ld: i386 architecture of input file '/lib/crti.o' is incompatible with i386:x86-64 output
ld: i386 architecture of input file '/lib/crtn.o' is incompatible with i386:x86-64 output

谢谢你的帮助。

首先调整LD_LIBRARY_PATHLIBRARY_PATH变量,使multi - arch lib-dir领先于其他lib-dir。例如,/lib/x86_64-linux-gnu位于/usr/lib64/lib之前。现在,创建这个链接:
ln -s /lib64 /lib/x86_64-linux-gnu

上面的链接假设您没有/lib/x86_64-linux-gnu目录。如果您有该目录,但它是空的,请先删除它,然后建立链接。如果该目录不为空,则创建单独的库链接:

ln -s /lib64/crti.o /lib/x86_64-linux-gnu/crti.o
ln -s /lib64/crtn.o /lib/x86_64-linux-gnu/crtn.o

总的来说,为了克服这种类型的错误,编译器应该找到正确的库(关于32位或64位架构),并且必须在multiarchlib-dirs中,它们是:

/usr/lib/i386-linux-gnu
/usr/lib/x86_64-linux-gnu
/lib/i386-linux-gnu
/lib/x86_64-linux-gnu

还可以看看我对类似(尽管相反)错误的回答。

相关内容

最新更新