2017-11-06 15 views
1
나는 크로스 컴파일 내 코드를 팔 알 - 리눅스 - gnueabi 및 경고 아래의 컴파일을 많이하는 동안 볼 수 있습니다입니다
Unknown EABI object attribute 44 

알 수없는 EABI 객체는 속성 (44)

위의 경고를 무시하거나 내가 놓친 거지인가

일부와이 경고는 무엇을 의미합니까?

팔 어떤-GCC --version와 팔 어떤-로

우분투 @ 우분투입니다 --version : ~/crosstool-ng에/crosstool-ng에-1.14.0의 $ 암 - 알 수없는-linux- gnueabi-gcc --version arm-unknown-linux-gnueabi-gcc (crosstool-NG 1.14.0) 4.4.1 저작권 (C) 2009 자유 소프트웨어 재단 이것은 자유 소프트웨어입니다. 복사 조건에 대한 소스를 참조하십시오. 아무런 보증이 없습니다; 상품성 또는 특정 목적에의 적합성을 보장하지 않습니다.

우분투 @ 우분투 : ~/crosstool-ng에/crosstool-ng에-1.14.0의 $ 암 - 알 - 리눅스 - gnueabi-로 --version GNU 어셈블러 (crosstool-NG 1.14.0) 2.19.1 저작권 2007 Free Software Foundation, Inc. 이 프로그램은 무료 소프트웨어입니다. GNU General Public License 버전 3 이상을 조건으로 재배포 할 수 있습니다. 이 프로그램은 전적으로 어떠한 보증도하지 않습니다. 이 어셈블러는 'arm-unknown-linux-gnueabi'타겟으로 설정되었습니다.

+1

를 참조하기 위해 노력하고 있습니다. 만약 이들이 gnu 도구 (vs 말로는 clang과 binutils를 사용하여 처음에는 이것을 발견했습니다) gcc와 binutils가 동기화되지 않을 수 있습니다. 그래서 binutils를 팔로 업데이트하고 도움이되는지 확인하십시오. –

+0

질문에 대답하기에 충분한 정보가 없습니다. 보통 이런 종류의 오류는 동일한 버전의 컴파일러와 툴체인을 사용하지 않는다는 것을 나타냅니다. 또는 다른 컴파일러 버전 –

+0

에서 오브젝트 파일을 혼합하는 것은 arm-whatever-gcc --version과 arm-whatever-as --version을 할 때 어떻게됩니까? (귀하의 질문에 게시하십시오). –

답변

1
unsigned int fun (unsigned int x) 
{ 
    return(x+0x1000); 
} 

arm-whatever-gcc -O2 -c --save-temps so.c -o so.o 

cat so.s 

cat so.s 
    .cpu arm7tdmi 
    .fpu softvfp 
    .eabi_attribute 20, 1 
    .eabi_attribute 21, 1 
    .eabi_attribute 23, 3 
    .eabi_attribute 24, 1 
    .eabi_attribute 25, 1 
    .eabi_attribute 26, 1 
    .eabi_attribute 30, 2 
    .eabi_attribute 34, 0 
    .eabi_attribute 18, 4 
    .file "so.c" 
    .text 
    .align 2 
    .global fun 
    .type fun, %function 

binutils는 컴파일러에서 생성 된 .eabi_attribute 행 중 하나를 알지 못합니다.

arm-whatever-gcc -O2 -S so.c 

는 컴파일러가 어셈블러가 새로운 바이너리 유틸리티의 버전, 또는 손으로 편집 밖으로 그 라인으로 이동 할 수 있습니다 인식하지 않을 잔뜩 추가 된 eabi_attribute 지시자에게