I seem to have a strange anomaly with cross-compiling ARM-Linux on a Windows machine. I am using the Sourcery CodeBench Lite Edition (arm-none-linux-gnueabi-gcc) obtained from the Mentor Graphic website.
http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/
Earlier, I built my code on an Ubuntu machine using the arm-linux compiler (sudo apt-get install g ++ - arm-linux-gnueabi -y || gcc-arm-linux-gnueabi). The tools here work great, I can create object files and link them together without problems.
The problem is when I cross-compile ARM-Linux on Windows. In particular, the binding step. Here is the link in the make file
%.elf: $(OBJ_C_OMAP)
@echo "linking to make ELF"
@echo $(OBJ_C_OMAP)
@echo "-------------------------------"
$(CC) $(CFLAGS) $(OBJ_C_OMAP) --output $@ $(LDFLAGS)
OBJ_C_OMAP contains a list of all object files and their full paths, CFLAGS is a bunch of compiler flags, and LDFLAGS is a single linker flag. When he gets to this point, Linker gets over, and in the end he throws an error:
<full_path_to_an_object_file>: No such file or directory
When viewed, <full_path_to_an_object_file>it seems that the symbol is missing. If I compare this line with what @echo $ (OBJ_C_OMAP) gives us, there is an incorrect match, the variable $ (OBJ_C_OMAP) contains the correct path, but for some reason the linker uses it incorrectly. As an example of what happens:
/ad2_ra/ap/modules/gps/gps_ubx_ucenter.o: no such file or directory
When the directory specified in $ (OBJ_C_OMAP) shows
/ad2_raw/ap/modules/gps/gps_ubx_ucenter.o
In this example, the character 'w' is missing.
, , .o ( char ). - obj, , , obj, , .
, , Lite ( ). , "" ( ~ 66 ), , , .
,