Я пытаюсь добавить две библиотеки, libfreertos.a и STemWin532_CM7_IAR.a в проект Eclipse C / C++, чтобы запрограммировать плату STM32f7. Я продолжаю получать
cannot find -llibfreertos.a
а также
cannot find -lSTemWin532_CM7_IAR.a
ошибки.
Это команда, которую пытается выполнить Eclipse:
arm-none-eabi-gcc -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16 -L"C:\Users\q73624\Documents\STM32_Workspace\Wallbox_Sys_Workbench\Middlewares\ST\STemWin\Lib" -specs=nosys.specs -specs=nano.specs -T"../STM32F746NGHx_FLASH.ld" -Wl,-Map=output.map -Wl,--gc-sections -o "Wallbox_Sys_Workbench.elf" @"objects.list" -l"libfreertos.a" -l"STemWin532_CM7_IAR.a"
Мне известно о C++: внешняя библиотека в eclipse CDT
[1]: C++: внешняя библиотека в eclipse CDT, но этот пост был для Linux, поэтому я не уверен, что применимо к моему случаю. Я также пробовал с полным путем и без расширения .a, ничего не работало. Пожалуйста, дайте совет.
@FelixPalmen, я пытался это сделать. Я использовал эту команду: arm-none-eabi-gcc -mcpu = cortex-m7 -mthumb -mfloat-abi = hard -mfpu = fpv5-sp-d16 -L "C: \ Users \ q73624 \ Documents \ STM32_Workspace \ Wallbox_Sys_Wor kbench \ Middlewares \ S T \ STemWin \ Lib "-specs = nosys.specs -specs = nano.specs -T" ../ STM32F746NGHx_FLASH.ld "-Wl, -Map = output.map -Wl, - gc- разделы -o "Wallbox_Sys_Workbench.elf" @ "objects.list". Я получаю неопределенную ссылку для каждого вызова функции из библиотек.
В этой командной строке нет библиотек ...
@FelixPalmen, на этот раз я добавил их: arm-none-eabi-gcc -mcpu = cortex-m7 -mthumb -mfloat-abi = hard -mfpu = fpv5-sp-d16 -L "C: \ Users \ q73624 \ Documents \ STM32_Workspace \ Wallbox_Sys_Wor kbench \ Middlewares "-specs = nosys.specs -specs = nano.specs -T" ../ STM32F746NGHx_FLASH.ld "-Wl, -Map = output.map -Wl, - gc-section -o" Wallbox_Sys_Workbench.elf "@" objects.list "" C: / Users / q73624 / Documents / STM32_Workspace / Wallbox_Sys_Workb ench / Middlewares / Thi rd_Party / libfreertos .a "" C: / Users / q73624 / DocumentsSpace / WallBoxSpace / Wallbox Ench / Middlewares / Thi rd_Party / STemWin532_ CM7_IAR.a ". Он по-прежнему не может найти файлы.
Тогда путь не верный! Проблема может заключаться в путанице между прямой и обратной косой чертой, а также в том, что оболочка "съедает" обратную косую черту (так что вам нужно будет написать двойную обратную косую черту). Без доступа к вашей системе точно сказать не могу, попробуйте сами поэкспериментировать.
Спасибо, @FelixPalmen. Я наконец заставил его работать, используя имена библиотек без префикса «lib» и без расширения «.a».





Тогда не используйте
-l- этот флаг предваряет ставит «lib» в имя и ищет его в пути поиска библиотеки. Вместо этого просто добавьте простой полный путь к вашей библиотеке в конце командной строки без каких-либо флагов.