Linux ошибка при вызове функций из уже скомпилированного файла - PullRequest
0 голосов
/ 24 февраля 2020

Я работаю над проектом в Linux. Есть 2 библиотеки: BSP Discovery и HAL. Обнаружение BSP написано на основе библиотеки HAL.

Я написал 2 файла: * LED. c, вызывающий функцию из stm32l4r9i_discovery.h (в BSP Discovery). * LCD. c вызов функций из stm32l4r9i_discovery_psram.h и stm32l4r9i_discovery_lcd.h (в BSP Discovery).

Я также написал 2 файла .mk для этих 2. Когда я набираю команду в терминале Linux: make MAKE = STM32L4R9IDS C USER_C_MODULES = .. / .. / .. / usermod / snippets all

Я вижу, что файлы в библиотеке HAL и BSP Discovery скомпилированы и без ошибок. светодиод. c также скомпилирован нормально.

Однако, когда он начинает компилировать LCD. c, возникает несколько ошибок, подобных этому: это ошибки при компиляции

Это странно, потому что нет ошибки при компиляции светодиода. c (который записан так же, как LCD. c, вызывающий только разные функции из разных файлов в одной библиотеке BSP Discovery) и файлов в BSP Библиотека Discovery уже скомпилирована.

Я попытался включить stm32l4xx_hal_dsi / ltdc / gfxmmu.h, но это не помогло исправить ошибки.

Вот файл .mk для 2 файлов (они имеют одинаковую структуру:

USERMODULES_DIR := $(USERMOD_DIR)
SRC_USERMOD += $(USERMODULE_DIR)/LED.c
CFLAGS_USERMOD += -I$(USERMODULES_DIR)

Код светодиода. c - это:

#include "stm32l4r9i_discovery.h"
#include "stm32l4xx_hal.h"

void LED_init(int led)
{
if (led == 1)
   BSP_LED_Init(LED1);
else
   BSP_LED_Init(LED2);
}

код ЖК-дисплея. c - та же структура. Отличия состоят только в том, что он включает в себя другой файл от BSP и Вызов различных функций.

Как я могу исправить эту ошибку на картинке выше?

P / S: Я не знаю, почему я не могу опубликовать картинку на этом форуме, поэтому я поставил здесь ссылку на диск. : https://drive.google.com/file/d/1XmQFzpVQsznjrxdEuvFcKpjO5cGB6Jrh/view?usp=sharing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...