Как указать на наличие crtbeginS.o при кросс-компиляции под ARM?

Решил тут заняться кросс-комплияцией приложения на linux x86_64 под ARM,но в процессе сего действия возникла один проблема.

Действовал я по следующим инструкциям: Инструкции по кросс-компиляции под ARM

Выполняемая команда выглядит следующий образом:

arm-linux-gnueabihf-gcc -mfpu=vfpv3 -mcpu=cortex-a9 -mfloat-abi=hard --sysroot=$HOME/LibreAPP/sysroot/pluto-0.39.sysroot -std=gnu99 -g -o ~/LibreAPP/build/libre_stream $HOME/LibreAPP/main_prog/test1.c -lpthread -liio -lm -Wall -Wextra

Ошибка выглядит следующий образом:

/tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/x86_64-petalinux-linux/usr/bin/arm-xilinx-linux-gnueabi/arm-xilinx-linux-gnueabi-ld.real: cannot find crtbeginS.o: No such file or directory

Как я понял, этот файл является стандартным для используемого кросс-компилятора и его можно найти в файлах кросс-комплиятора. Мне удалось его найти по следующему пути:

/usr/local/bin/gcc-linaro-7.2.1-2017.11-i686_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.2.1

Подскажите пожалуйста, как указать кросс-комплиятору,что такой файл всё-таки существует,чтобы продолжить продолжить выполнение программы?


Ответы (1 шт):

Автор решения: eri

/tools/Xilinx/.../x86_64-petalinux-linux/usr/bin/ у вас в переменной PATH.

поправьте её.

Какой из компиляторов пытается запуститься смотрите через программу which

→ Ссылка