2015-02-16 1 views
1

Я пытаюсь создать код для платформы на основе XMC1100. Я пробовал этот учебник: http://eleceng.dit.ie/frank/arm/BareMetalXMC2Go/index.htmlarm-none-eabi-ld: не удалось найти -lc

Я загрузил файл blinky.tar.gz и распаковал. Когда я пытаюсь «сделать», я получаю эту ошибку: рука-ни-EABI-л.д.: не может найти -lc

Вот выход «сделать»

arm-none-eabi-gcc -c -mcpu=cortex-m0 -mthumb -g init.c -o init.o 
arm-none-eabi-gcc -c -mcpu=cortex-m0 -mthumb -g main.c -o main.o 
arm-none-eabi-ld init.o main.o -L /usr/lib/gcc/arm-none-eabi/4.8.2/armv6-m -T linker_script.ld -lc --cref -Map main.map -nostartfiles -o main.elf 
arm-none-eabi-ld: cannot find -lc 
make: *** [main.elf] Error 1 

Я использую Linux Mint 17 Qiana

Что мне не хватает?

Вот мой Makefile:

LIBSPEC=-L /usr/lib/gcc/arm-none-eabi/4.8.2/armv6-m 

# Specify the compiler to use 
CC=arm-none-eabi-gcc 
# Specify the assembler to use 
AS=arm-none-eabi-as 
# Specity the linker to use 
LD=arm-none-eabi-ld 

CCFLAGS=-mcpu=cortex-m0 -mthumb -g 

# List the object files involved in this project 
OBJS= init.o \ 
     main.o 

# The default 'target' (output) is main.elf and it depends on the object files being there. 
# These object files are linked together to create main.elf 
main.elf : $(OBJS) 
    $(LD) $(OBJS) $(LIBSPEC) -T linker_script.ld -lc --cref -Map main.map -nostartfiles -o main.elf 
    arm-none-eabi-objcopy -O binary main.elf main.bin 
    objcopy -O ihex main.elf main.hex 
    @echo "done" 

# The object file main.o depends on main.c. main.c is compiled to make main.o 
main.o: main.c 
    $(CC) -c $(CCFLAGS) main.c -o main.o 


init.o: init.c 
    $(CC) -c $(CCFLAGS) init.c -o init.o 

# if someone types in 'make clean' then remove all object files and executables 
# associated wit this project 
clean: 
    rm $(OBJS) 
    rm main.elf 
    rm main.bin 
+1

Я думаю, что ваш LIBSPEC ошибочен. Я просмотрел образец сценария с сайта, который вы связали, а также загрузил последнюю (4_9-2014q4) версию инструментальной цепочки для Linux и Windows, а ваш LIBSPEC не соответствует структуре каталогов любого из этих источников. Как вы установили эту инструментальную цепочку? –

+0

Привет, Джон, я установил с apt-get. он загружается с официального репо. Я изменил LIBSPEC, потому что каталог в оригинальном файле не существует. У вас есть идея, как найти правильный путь для LIBSPEC? – fobus

+1

@fobus: Он будет содержать 'libc.a', что означает параметр' -lc' ('-lXXX' связывает библиотеку с именем libXXX.a). – Clifford

ответ

2

Я встретил ту же проблему и sudo apt-get install libnewlib-arm-none-eabi помогли мне.

+0

Я знаю, что прошло какое-то время, так как этот ответ был дан, но чувак !!! Вы спасли мою жизнь!! Кстати, я столкнулся с одной и той же проблемой, но пытался скомпилировать i-MX6 bare-metal код. – m4l490n