Relocations in generic ELF (EM: 40)
42,706
It looks like you PREVIOUSLY tried to compile with a different toolchain (e.g. x86), and the object files are still there from that build.
Try using
make clean
Author by
kevin ver
Updated on July 15, 2022Comments
-
kevin ver almost 2 years
I trying to cross compile form Ubuntu to Friendly-arm but I'm getting the strange error:
root@kevin-VirtualBox:/home/kevin/Desktop/makef# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-l gcc -o main obj/main.o obj/serial.o obj/fb.o obj/menu_main.o obj/timer.o obj/cmdin.o obj/buzzer.o obj/statemachine.o obj/inout.o obj/network.o obj/text_file_input.o obj/text_file_input_oven.o -I./ -lgd -lrt /usr/bin/ld: obj/main.o: Relocations in generic ELF (EM: 40) obj/main.o: could not read symbols: File in wrong format collect2: ld returned 1 exit status make: *** [main] Error 1
command line : make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-l
Makefile: (updated)
export ARCH:=arm export CROSS_COMPILE:=arm-none-linux-gnueabi IDIR =./ CC=arm-linux-gnueabi-gcc CFLAGS=-I$(IDIR) LD= //opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/bin/ ODIR=obj LDIR =./ LIBS=-lgd -lrt _DEPS = main.h Makefile DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS)) _OBJ = main.o serial.o fb.o menu_main.o timer.o cmdin.o buzzer.o statemachine.o inout.o network.o text_file_input.o text_file_input_oven.o OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ)) $(ODIR)/%.o: %.c $(DEPS) $(CC) -c -o $@ $< $(CFLAGS) main: $(OBJ) $(CC) -o $@ $^ $(CFLAGS) $(LIBS) .PHONY: clean clean: rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~
New errors after updating Makefile:
root@kevin-VirtualBox:/home/kevin/Desktop/makef# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi -l gcc -o main obj/main.o obj/serial.o obj/fb.o obj/menu_main.o obj/timer.o obj/cmdin.o obj/buzzer.o obj/statemachine.o obj/inout.o obj/network.o obj/text_file_input.o obj/text_file_input_oven.o -I./ -lgd -lrt /usr/bin/ld: obj/main.o: Relocations in generic ELF (EM: 40) obj/main.o: could not read symbols: File in wrong format collect2: ld returned 1 exit status make: [main] Error 1 (ignored) arm-linux-gnueabi-gcc -o main obj/main.o obj/serial.o obj/fb.o obj/menu_main.o obj/timer.o obj/cmdin.o obj/buzzer.o obj/statemachine.o obj/inout.o obj/network.o obj/text_file_input.o obj/text_file_input_oven.o -I./ -lgd -lrt /usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: warning: libz.so.1, needed by /usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/lib/../lib/libgd.so, not found (try using -rpath or -rpath-link) /usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: warning: libexpat.so.1, needed by /usr/arm-linux-gnueabi/lib/libfontconfig.so.1, not found (try using -rpath or -rpath-link) /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_GetBuffer' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_GetErrorCode' /usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/lib/../lib/libgd.so: undefined reference to `compress' /usr/arm-linux-gnueabi/lib/libfreetype.so.6: undefined reference to `inflate' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_SetDoctypeDeclHandler' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_ParserCreate' /usr/arm-linux-gnueabi/lib/libpng12.so.0: undefined reference to `crc32' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_GetCurrentLineNumber' /usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/lib/../lib/libgd.so: undefined reference to `uncompress' /usr/arm-linux-gnueabi/lib/libpng12.so.0: undefined reference to `deflateReset' /usr/arm-linux-gnueabi/lib/libpng12.so.0: undefined reference to `deflate' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_SetCharacterDataHandler' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_ParserFree' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_SetUserData' /usr/arm-linux-gnueabi/lib/libpng12.so.0: undefined reference to `deflateInit2_' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_ParseBuffer' /usr/arm-linux-gnueabi/lib/libfreetype.so.6: undefined reference to `inflateEnd' /usr/arm-linux-gnueabi/lib/libpng12.so.0: undefined reference to `deflateEnd' /usr/arm-linux-gnueabi/lib/libpng12.so.0: undefined reference to `inflateInit_' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_ErrorString' /usr/arm-linux-gnueabi/lib/libfontconfig.so.1: undefined reference to `XML_SetElementHandler' /usr/arm-linux-gnueabi/lib/libfreetype.so.6: undefined reference to `inflateInit2_' /usr/arm-linux-gnueabi/lib/libfreetype.so.6: undefined reference to `inflateReset' collect2: ld returned 1 exit status make: *** [main] Error 1 root@kevin-VirtualBox:/home/kevin/Desktop/makef#
the makefile works after your comment (thank you) and creates a main file the only error im getting is : warning: format not a string literal and no format arguments [-Wformat-security] but it dossent seem to be critical
-
kevin ver about 10 yearsmake clean returns 'rm -f obj/*.o *~ core /*~ ' and removes all the .o files. When i run make i get the same error
-
Mats Petersson about 10 yearsAh, yes, I notice that @duskwuff has spotted another problem - it's the same "type of error" (mixing tools), but caused by a different scenario.
-
kevin ver about 10 yearsupdated the question whit the resulted of @duskwuff suggestion
-
Mats Petersson about 10 yearsLooks like you are missing some libraries (some sort of compression/decompression library - not sure if it's libz or something else - and some XML library by the looks of things).