2015-04-15 2 views
0

Я загрузил библиотеку криптографии nettle 3.0 и скомпилировал ее на ubuntu. Я проверил пример, и он отлично работает на ubuntu. Я добавил скомпилированный файл статической библиотеки (libnettle.a) на мой проект Makefile в Contiki, просто добавив:Пропуск несовместимой ошибки

LDFLAGS+= -L/usr/local/lib/ -lnettle 

Когда я пытаюсь скомпилировать код узла, я получаю эту

/usr/local/msp430/bin/../lib/gcc/msp430/4.7.0/../../.*./../msp430/bin/ld:skipping incompatible /usr/l*ocal/lib//libnettle.a when searching for -lnettle 
/usr/local/msp430/bin/../lib/gcc/msp430/4.7.0/../../.*./../msp430/bin/ld: cannot find -lnettle* 
collect2: error: ld returned 1 exit status 
rm obj_sky/contiki-sky-main.o test_nettle.co 
Process returned error code 2 

make: *** [test_nettle.sky] Error 1 

Должен ли я добавить флаг -m32 или что?

Если да, то какой флаг? CFLAG?

и, кстати, библиотека крапивы - 32 бит, я проверил.

Спасибо

Ok. Поэтому я восстановить библиотеку с помощью следующих команд:

./configure --target=msp430 --prefix=/usr/local/Mymsp430 
make 
make install 

Изменена LDFLAG к

LDFLAGS+= -L/usr/local/Mymsp430/lib/ -lnettle 

Но я до сих пор та же ошибка.

ответ

2

Вы должны создать библиотеку с той же инструментальной цепочкой, что и тот, который вы используете для создания своего приложения.

Вы не можете связать код x86 с кодом, скомпилированным для MSP430, который представляет собой совершенно другую архитектуру.

+0

Извините, но вы говорите, что ELF32-i368 несовместим с theELF32-little – yushaa4dz

+0

Нет, он говорит вам, что у вас есть не только неправильный формат эльфа, но и неправильный набор инструкций. 'readlef -h file' предоставляет необходимую информацию. Он должен содержать нечто вроде «Machine: Texas Instruments msp430 microcontroller». Дальнейшее чтение: http://en.wikipedia.org/wiki/Instruction_set – morty

+0

Я все еще не понимаю. Извините . Что именно я должен делать? перестроить библиотеку, используя разные настройки или ???? – yushaa4dz