I'm hitting this error with anything I have tried to install.
The machine is running redhat and devops has installed newer versions of programs/components in non-standard locations. I only have user level access. I have forced homebrew to use non-standard locations of curl and git, but I do not know how to point to a newer version of gcc or tell it to add options to the linker to handle the older (glibc?) files.
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
Thanks for any help.
First adjust
LD_LIBRARY_PATH
andLIBRARY_PATH
variables so that multiarch lib-dirs take lead of other ones. For example,/lib/x86_64-linux-gnu
stands before/usr/lib64
and/lib
. Now, make this link:ln -s /lib64 /lib/x86_64-linux-gnu
The above linking assumes you do not have
/lib/x86_64-linux-gnu
directory. If you have that directory but it is empty, please first remove it then make link. If that directory is not empty, make individual library linking:ln -s /lib64/crti.o /lib/x86_64-linux-gnu/crti.o
ln -s /lib64/crtn.o /lib/x86_64-linux-gnu/crtn.o
Overall, to overcome this type of error, the compiler should find correct library (regarding 32bit or 64bit architecture) and necessarily in multiarch lib-dirs, which are:
/usr/lib/i386-linux-gnu
/usr/lib/x86_64-linux-gnu
/lib/i386-linux-gnu
/lib/x86_64-linux-gnu
Also take a look at my answer to similar (though opposite) error here.