У меня при компиляции проекта на STM32 linker ошибки выдает. Например: " undefined reference to `GPIO_ResetBits'". Хотя в хедерах все прописано. Вопрос: это мне как-то в make-file нужно еще их прописать для линкера?
У меня при компиляции проекта на STM32 linker ошибки выдает. Например: " undefined reference to `GPIO_ResetBits'". Хотя в хедерах все прописано. Вопрос: это мне как-то в make-file нужно еще их прописать для линкера?
Комментарии: 11
Max
в хедерах мало что бы было. еще надо что бы компилился сишник в статическую библиотеку и во время линковки эта библиотека подхватывалась смотри логи компилятора. и там посмотри, как С-файл с нужной функцией компилиться - если в библиотеку, то нужно, что бы либа потом еще на вход линкеру попала. если С-файл не фигурирует в логах компилятора и линкера - нужно добавить его в команду компиляции, а после и библиотеку в команду линкеру. если у тебя весь ELF компилиться в одну команду (без отдельного вызова линкера тобишь), то достаточно будет просто добавить файл в эту команду
Edgar
build\disco_f411ve\src\main.o: In function `main': main.c:(.text.startup.main+0x46): undefined reference to `GPIO_SetBits' вот такого добра пишен немеренно по всех файлах исходников
Max
не те логи смотришь. смотри все логи. прям все. а если умеешь пользоваться grep - то юзай его с самого начала смотри как билд проходит
Edgar
grep - это что? полное название какое?
Max
как бэ дебаг надо начинать сверху а не снизу это и есть полное название. ты на линуксах?
Edgar
нет, форточка
Max
тогда ручками, или какие там средства фильтрации текста у вас на форточках есть
Edgar
у меня компиляция .о файлов проходит, только начинается линковка (Linking .pio\build\disco_f411ve\firmware.elf) - сразу сыпятся ошибки
Max
вот в .o файлах нужный файл фигурирует?
Edgar
теперь я понял о чем ты
Max
еще раз перечитай месседж -> https://t.me/ru_electronics/130489 .o файл этот статическая либа ну, точнее, просто объектник. одна хрень. они потом должны скармливаться линкеру, иначе он будет ругаться. смотри внимательно, потому что порядок в котором файлы скармливаются линкеру может играть значение