2017-02-05 7 views
2

Я пытаюсь скомпилировать свой код с помощью компилятора DS-5. В состоянии связывания я получаю ошибку отказа компоновщика. Я вижу предупреждения, но не конкретные ошибки, такие как неопределенные ссылки или тому подобное. Может кто-то помочь мне в том жеLD Link Failed - Bad Value

Бревна, как показано ниже

/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

Эта проблема может возникнуть при использовании GCC компилятора переключатель -fno-короткозамыкателях перечислений, чтобы заставить все перечисления быть 32бят. Фактическое предупреждение выводится из компоновщика, когда цель линкера установлена ​​для перечислений с переменным размером.

Если вы укажете ключ-компилятор -fshort-enums, предупреждения исчезнут, потому что все перечисления теперь согласованы. Это хорошие новости. Плохая новость: если вам действительно нужно, чтобы перечисления были 32 бит, я не знаю, какой вариант требует линкер. Это моя проблема. Я считаю, что это подразумевается некоторыми другими настройками сборки и по-прежнему ищет ...