Пропуск несовместимой ошибки

Я скачал библиотеку криптографии Nettle 3.0 и скомпилировал ее в Ubuntu. Я запустил пример, и он работает нормально на Ubuntu. Я добавил файл скомпилированной статической библиотеки (libnettle.a) в make-файл моего проекта в 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 бита, я проверил.

Спасибо

Хорошо. Поэтому я перестроил библиотеку, используя следующие команды:

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

Поменял LDFLAG на

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

Но у меня все еще та же ошибка.

1 ответ

Решение

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

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

Другие вопросы по тегам