2017-02-05 1 views
2

DS-5 컴파일러를 사용하여 코드를 컴파일하려고합니다. 연결 상태에서 링커 오류가 발생합니다. 경고가 나오지만 정의되지 않은 참조 또는 이와 유사한 오류는 없습니다. 누군가가 같은LD 연결 실패 - 잘못된 값

로그에 나를 도울 수있는 것은 당신이 32 비트 될 모든 열거 형을 강제로 -fno-짧은 열거 gcc가 컴파일러 스위치를 사용할 때이 문제가 발생할 수

/usr/local/DS-5/sw/gcc/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: warning: /opt/arm-2010.09/lib/gcc/arm-none-eabi/4.5.1/libgcc.a(bpabi.o) uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail 
/usr/local/DS-5/sw/gcc/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: warning: /opt/arm-2010.09/lib/gcc/arm-none-eabi/4.5.1/libgcc.a(unwind-arm.o) uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail 
/usr/local/DS-5/sw/gcc/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: warning: /opt/arm-2010.09/lib/gcc/arm-none-eabi/4.5.1/libgcc.a(pr-support.o) uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail 
/usr/local/DS-5/sw/gcc/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: warning: /opt/arm-2010.09/lib/gcc/arm-none-eabi/4.5.1/libgcc.a(_divdi3.o) uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail 
/usr/local/DS-5/sw/gcc/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: warning: /opt/arm-2010.09/lib/gcc/arm-none-eabi/4.5.1/libgcc.a(_udivdi3.o) uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail 
/usr/local/DS-5/sw/gcc/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: .ddr_text has both ordered [`.ARM.exidx.atcm_text' in .//hw/obj/target/hw.a] and unordered [`.ARM.extab' in /opt/arm-2010.09/lib/gcc/arm-none-eabi/4.5.1/libgcc.a(_udivdi3.o)] sections 
/usr/local/DS-5/sw/gcc/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: final link failed: Bad value 
collect2: error: ld returned 1 exit status 
make: *** [all] Error 1 

답변

0

다음과 같다. 실제 경고 메시지는 링커의 대상이 가변 크기의 enum에 대해 설정 될 때 링커에서 제공됩니다.

컴파일러 스위치 -fshort-enums를 지정하면 모든 enum이 이제 일관되므로 경고가 사라집니다. 그것은 좋은 소식입니다. 나쁜 소식은 ... 열거 형을 32 비트로 설정해야한다면 링커가 어떤 옵션을 필요로하는지 알 수 없습니다. 이것은 내 문제입니다. 나는 그것이 다른 몇몇 설정에 의해 함축되어 여전히 찾고 있다고 믿습니다 ...

관련 문제