On Feb 12, 2000, A Nourai wrote:
I've had similar problems with compiling mesa 3.1 and some vrml viewers etc.
The error always looks like
/usr/i486-linux/bin/ld: cannot open xxx.o: No such file or directory make: *** [xfstt] Error 1
OK, I got xfstt to link, finally. I'll explain at the end of this post. For now, I want to say that as far as I can tell, either xfstt has unreasonable expectations about where to find certain libs and .o files, OR for some reason SuSE 6.3 installs them in oddball locations that the linker doesn't look in by default. The end result is that the user has to do a lot of trial-and-error to learn what files the linker can't find, and then to make sure that it CAN find them by editing the Makefile or moving/copying them to a better location. Linking xfstt: 1. Edit Makefile by adding -v option to steps that invoke linker, to see exactly what paths are being searched for files and libs. Result: gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) /usr/i486-linux/bin/ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o xfstt /usr/lib/crt1.o /usr/lib/crti.o crtbegin.o -L/usr/X11R6/lib -L/usr/lib/gcc-lib/i486-linux/egcs-2.91.66 -L/usr/i486-linux/lib {long list of .o files here...} xfstt.o encoding.o -lstdc++ -lm -lgcc -lc -lgcc crtend.o /usr/lib/crtn.o /usr/i486-linux/bin/ld: cannot open crtbegin.o: No such file or directory make: *** [xfstt] Error 1 2. So, everything is fine until the linker looks for unqualified crtbegin.o and can't find it. Copy it into the dir with Makefile. Notice that crtend.o is also unqualified, so copy it as well. Rerun 'make'. Result: same output as above, except for: /usr/i486-linux/bin/ld: cannot open -lgcc: No such file or directory make: *** [xfstt] Error 1 3. Now '-lgcc' is linker shorthand for the library 'libgcc.a' (man ld). That lib is located in /usr/lib/gcc-lib/i486-linux/2.7.2.3, so that path must be added to the LFLAGS variable as a new -L directive. Likewise, add -L directives for the directories that contain libm.a and libc.a to take no chances. Next 'make', ta daa, an xfstt executable. I repeat, SuSE mavens, why is all that necessary? Why aren't those .o files and .a files where the linker would normally expect them? Howard Arons -- Powered by SuSE Linux 6.3 -- Kernel 2.2.13 Communications by Mutt 1.0i -- To unsubscribe send e-mail to suse-linux-e-unsubscribe@suse.com For additional commands send e-mail to suse-linux-e-help@suse.com Also check the FAQ at http://www.suse.com/Support/Doku/FAQ/