리눅스 컴파일을 하던 중 VFP 관련 에러가 발생했습니다.
글쓴이: dovmfflem / 작성시간: 화, 2015/07/14 - 2:33오후
error: most uses VFP register arguments file.o dose not
이라는 에러가 발생했습니다.
크로스 컴파일러는
arm-linux-gnueabihf-gcc
를 사용했습니다.
처음 이 코드는 arm-none-linux-gnueabi-gcc 로 make 했을 때 목적파일을 생성할 수 있었는데
다른 환경에서 돌리기 위해 크로스 컴파일러를 교체하였더니 에러가 발생했습니다.
어떻게 조치해야 할지 궁금합니다.
Forums:
arm의 floating point abi는
arm의 floating point abi는 soft, hard, softfp로 3종류입니다.
soft는 소프트웨어로 구현된 실수연산을, hard와 softfp는 하드웨어 FPU를 사용하는 코드를 생성합니다.
hard와 softfp의 차이점은 함수의 실수 인자로 어떤 레지스터를 사용하는가인데, hard는 VFP 레지스터를, softfp는 일반레지스터를 사용합니다.
softfp는 하드웨어 FPU를 사용하면서도 기존의 soft fabi를 사용하는 코드와 호환이 됩니다.
기존에 사용하셨던 컴파일러가 soft나 softfp fabi를 기본으로 사용하던 것 같고, 변경한 컴파일러는 hard fabi를 기본으로 사용하는 것으로 보입니다.
object 파일을 기존 컴파일러로 만든 상태에서 컴파일러만 교체하신 것 같은데, hard fabi가 기존의 fabi와 호환되지 않아 링크 에러가 발생한 것 같습니다.
프로그램을 clean후 재빌드 해보시고 에러가 나는지 확인해보세요.
gnueabi 와 gnueabihf 는 fp ABI
중복삭제
댓글 달기