Проблемы интеграции математической библиотеки Libtomcrypt - PullRequest
0 голосов
/ 12 сентября 2018

Я компилирую libtomcrypt for arm (используя arm-none-eabi-gcc) в качестве библиотеки и пытаюсь использовать ее, но у меня проблемы с библиотекой math. В частности, когда я пытаюсь скомпилировать мой файл при попытке запустить код RSA в файле PDF, он сообщает: MyTask.c:406: неопределенная ссылка на `ltm_desc '.

  1. libtomcrypt и libtommath компилируются в подсистеме linux для windows ubuntu. Я добавил флаги -DUSE_LTM и -DLTM_DESC при компиляции libtomcrypt и добавил -I / usr / local / include, так как по какой-то причине он не смог найти заголовки томатов. Полная команда make: make install CFLAGS="-DUSE_LTM -DLTM_DESC -I/usr/local/include". libtommath make install выполняется без ошибок.

  2. Основная программа (по старым причинам) создается в среде Windows с использованием тех же флагов компилятора и компилятора. Мои CFLAGS CFLAGS = C_FLAGS = -mcpu=cortex-m0plus -mthumb -mlittle-endian -mthumb -Wall -Wstrict-prototypes -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -L../cryptom/ -DLTM_DESC -DUSE_LTM

с cryptom, где я разместил библиотечные файлы для libtommath и libtomcrypt.

Ошибка возникает при попадании на компоновщик. Это соответствующая строка:

uTaskerV1.4.elf: $(OBJS) $(OBJS2) K_2M_256.ld K_1M_256.ld K_1M_128.ld K_512_64.ld K_256_256.ld K_256_64.ld K_256_32.ld K_128_24.ld K_128_16.ld K_64_16.ld KL_128_96.ld KL_256_32.ld KL_128_16.ld KL_64_8.ld KL_32_4.ld KV_32_8.ld KV_512_96.ld KE_64_4.ld KE_256_32.ld KE_128_16.ld KE_8_1.ld KEA_128_16.ld KEA_64_4.ld  KEA_32_4.ld KEA_8_1.ld
    $(CC_LNK) $(C_FLAGS) -Os -g -TKL_128_96.ld -nostartfiles -Xlinker --gc-sections -lm -Wl,-Map,"uTaskerV1.4.map" -o "uTaskerV1.4.elf" $(OBJS) $(OBJS2) -ltommath -ltomcrypt -specs=nano.specs -specs=nosys.specs
    $(CC_OBJ) --only-section=.data --only-section=.init --only-section=.text --only-section=.rodata --only-section=.vectors --only-section=.f_config --output-target=srec uTaskerV1.4.elf uTaskerV1.4.srec
    $(CC_OBJ) --only-section=.data --only-section=.init --only-section=.text --only-section=.rodata --only-section=.vectors --only-section=.f_config --output-target=ihex uTaskerV1.4.elf uTaskerV1.4.hex
    $(CC_OBJ) --only-section=.data --only-section=.init --only-section=.text --only-section=.rodata --only-section=.vectors --only-section=.f_config --output-target=binary uTaskerV1.4.elf uTaskerV1.4.bin
    $(CC_SIZE) uTaskerV1.4.elf

Нематематическая библиотека, использующая разделы кода, работает нормально. Я попытался вручную определить LTM_DESC в моей собственной программе, но, кроме того, что выбрасывал много ошибок переопределения, не было и никаких кубиков.

Версия linux arm-gcc gcc версия 6.3.1 20170620 (15: 6.3.1 + svn253039-1build1) windows arm-gcc gcc версия 7.3.1 20180622 (выпуск) [ARM / Embedded-7-Branch Revision 261907] (Инструменты GNU для встроенных процессоров Arm 7-2018-q2-обновление)

Спасибо

...