2013-10-27 4 views
0

내가 컴파일 할 때이 오류를 받고 있어요팔 - gcc가 해결되지 않은 참조 'SINF'

#include <math.h> 
수학 라이브러리에 링크하는 동안

는 그러나, 나는 오류가 발생 : 그러나

arm-none-eabi-ld -L/usr/lib -lm --gc-sections -T ../standalone.ld -o "main.elf" ./main.o ./startup_gcc.o 
error: cannot find -lm 

, 라이브러리는 분명히있다 :

Kens-MacBook-Pro:lib Ken$ pwd 
/usr/lib 
Kens-MacBook-Pro:lib Ken$ ls | grep libm 
libm.dylib 
libmecab.1.0.0.dylib 
libmecab.dylib 
libmecabra.dylib 
libmenu.5.4.dylib 
libmenu.dylib 
libmx.A.dylib 
libmx.dylib 
Kens-MacBook-Pro:lib Ken$ 

내가 뭘 잘못하고 있니? Eclipse를 사용하고 있습니다.

+0

@chux OP는 수학 라이브러리가 연결되지 않았다고 말합니다. 같은 라이브러리에서 다른 함수를 사용하는 것이 어떻게 도움이되는지 나는 알지 못합니다. – tangrs

답변

2

귀하의 arm-none-eabi-ld 명령으로 판단 할 때, 저는 귀하가 크로스 컴파일이라고 가정합니다. 플랫폼이 무엇이든 도구 체인에 수학 라이브러리를 설치해야합니다.

출력 한 ls에는 대상이 아닌 호스트에서 사용할 수있는 라이브러리 목록이 포함되어 있습니다. 내 컴퓨터에서 ARM 크로스 컴파일러의 라이브러리는 예를 들어 /opt/local/arm-none-eabi/lib/에 있습니다.

danieltang ~$ ls /opt/local/arm-none-eabi/lib/ 
crt0.o  ldscripts libm.a  libssp_nonshared.a libstdc++.a-gdb.py libsupc++.la 
elf2flt.ld libc.a  libssp.a libssp_nonshared.la libstdc++.la thumb 
fpu   libg.a  libssp.la libstdc++.a   libsupc++.a 
+0

감사합니다. 그러나 arm-none-eabi에 포함 된 libm.a에 링크하면 해당 파일에서 수 많은 미해결 참조가 있습니다. \ –

+0

'libgcc'를 링크해야 할 수도 있습니다. 링커 플래그에'-lgcc'를 추가하십시오. – tangrs

+0

@KenAdams이게 문제를 해결 했습니까? 그렇다면 이것을 받아 들인 대답으로 표시해야합니다 – tangrs