sh-elf で math.h を使いたい
Posted: 2011年1月19日(水) 14:32
Cygwin GCC で SH7262のためのクロスコンパイルをしています。
このたび、数学関数 math.h を組み込むことになりました。
test.c の中に sin() , cos() を記述しています。
sh-elf-ld でのリンク時に、次のようなエラーが発生します。
/home/user/test/test.c:81 undefined reference to 'sin'
/home/user/test/test.c:81 undefined reference to 'cos'
make: *** [all] Error 1
Makefileは次のように記述しています。
CSRCS = test.c
TARGET = test
ASMSRCS = startup.s
OBJS = $(ASMSRCS:%.s=%.o) $(CSRCS:%.c=%.o)
LDSCRIPT = memory.def
GCC = /usr/local/sh-tools/bin/sh-elf-gcc
LD = /usr/local/sh-tools/bin/sh-elf-ld
AS = /usr/local/sh-tools/bin/sh-elf-as
OBJCOPY = /usr/local/sh-tools/bin/sh-elf-objcopy
GCCLIB = /usr/local/sh-tools/lib/gcc/sh-elf/4.4.0/m2a
NEWLIB_INC = /usr/local/sh-tools/newlib/sh-elf/include
NEWLIB_LIB = /usr/local/sh-tools/newlib/sh-elf/lib/m2a
all: $(OBJS) $(LDSCRIPT)
$(LD) -Map $(TARGET).map -T $(LDSCRIPT) $(OBJS) -L$(NEWLIB_LIB) -L$(GCCLIB) -lgcc -o $(TARGET).elf
$(OBJCOPY) -O srec $(TARGET).elf $(TARGET).mot
$(OBJCOPY) -O binary $(TARGET).elf $(TARGET).bin
.c.o:
$(GCC) -c -g -m2a -I$(NEWLIB_INC) $< -lm
.s.o:
$(AS) $< -g -o $@
clean:
rm *.o $(TARGET).elf $(TARGET).map $(TARGET).mot $(TARGET).bin
math.h を使うために現状で分かるかぎりのことはしましたが、
小生の知識不足のため、このエラーが解消できません。
もし分かる方いらっしゃいましたら、ご指摘下さい。
このたび、数学関数 math.h を組み込むことになりました。
test.c の中に sin() , cos() を記述しています。
sh-elf-ld でのリンク時に、次のようなエラーが発生します。
/home/user/test/test.c:81 undefined reference to 'sin'
/home/user/test/test.c:81 undefined reference to 'cos'
make: *** [all] Error 1
Makefileは次のように記述しています。
CSRCS = test.c
TARGET = test
ASMSRCS = startup.s
OBJS = $(ASMSRCS:%.s=%.o) $(CSRCS:%.c=%.o)
LDSCRIPT = memory.def
GCC = /usr/local/sh-tools/bin/sh-elf-gcc
LD = /usr/local/sh-tools/bin/sh-elf-ld
AS = /usr/local/sh-tools/bin/sh-elf-as
OBJCOPY = /usr/local/sh-tools/bin/sh-elf-objcopy
GCCLIB = /usr/local/sh-tools/lib/gcc/sh-elf/4.4.0/m2a
NEWLIB_INC = /usr/local/sh-tools/newlib/sh-elf/include
NEWLIB_LIB = /usr/local/sh-tools/newlib/sh-elf/lib/m2a
all: $(OBJS) $(LDSCRIPT)
$(LD) -Map $(TARGET).map -T $(LDSCRIPT) $(OBJS) -L$(NEWLIB_LIB) -L$(GCCLIB) -lgcc -o $(TARGET).elf
$(OBJCOPY) -O srec $(TARGET).elf $(TARGET).mot
$(OBJCOPY) -O binary $(TARGET).elf $(TARGET).bin
.c.o:
$(GCC) -c -g -m2a -I$(NEWLIB_INC) $< -lm
.s.o:
$(AS) $< -g -o $@
clean:
rm *.o $(TARGET).elf $(TARGET).map $(TARGET).mot $(TARGET).bin
math.h を使うために現状で分かるかぎりのことはしましたが、
小生の知識不足のため、このエラーが解消できません。
もし分かる方いらっしゃいましたら、ご指摘下さい。