Easyelectronics.ru

Электроника для всех
Текущее время: 06 дек 2021, 07:28

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 12 янв 2016, 14:54 
Старожил

Зарегистрирован: 28 ноя 2013, 14:12
Сообщения: 294
Пытаюсь перевести проект из кокоса в кеил. И выдает ошибку Error: L6200E: Symbol LCD_WINDOW multiply defined (by stm32_ub_touch_ads7843.o and test.o).

в stm32_ub_touch_ads7843.с и test.с присутствует одно и тоже определение LCD_WINDOW

но в тест.с его нет. Откуда убрать повторяющееся определение ? или можно где то галочку поставить в компиляторе что бы он пропускал повторные определения ?


Проект в кеиле - https://yadi.sk/d/N8QI5nIImqBUM


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 12 янв 2016, 15:14 
Старожил

Зарегистрирован: 26 июл 2015, 12:24
Сообщения: 660
r0cket писал(а):
Пытаюсь перевести проект из кокоса в кеил. И выдает ошибку Error: L6200E: Symbol LCD_WINDOW multiply defined (by stm32_ub_touch_ads7843.o and test.o).

в stm32_ub_touch_ads7843.с и test.с присутствует одно и тоже определение LCD_WINDOW

но в тест.с его нет. Откуда убрать повторяющееся определение ? или можно где то галочку поставить в компиляторе что бы он пропускал повторные определения ?

У меня подобное было,когда пытался правильно разбивать на модули программу и хотел,чтобы был файл main.h и чтобы через него всё остальное инклюдилось.Не научился,не получилось,конфа не помогла,оставил это пока, до лучших времён,обошёл,убрав инклюды из main.h,ошибки пропали.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 12 янв 2016, 15:30 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1794
Откуда: Донецк, ДНР
Файл #include "stm32_ub_lcd_ssd1289.h"

LCD_WINDOW_t LCD_WINDOW;

Сколько раз Вы проинклюдите этот файл, столько багов и получите.
Отвратительнейшая практика определять глобальные переменные в .h файлах ...

Впишите LCD_WINDOW_t LCD_WINDOW; в каккой-нибудь .c файл, а в .h в эту строку добавьте extern вначале.
Хотя, имхо, я вообще противник определять переменные в заголовках. Не для этого они предназначены.


Последний раз редактировалось hd44780 12 янв 2016, 15:33, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 12 янв 2016, 15:31 
Старожил

Зарегистрирован: 28 ноя 2013, 14:12
Сообщения: 294
и как быть? в кокосе работало)) учиться сразу неправильному привело к плохому

Если убирать инклюды то начинает ругаться что не определено много всего


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 12 янв 2016, 15:36 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1794
Откуда: Донецк, ДНР
Впишите LCD_WINDOW_t LCD_WINDOW; в файл stm32_ub_lcd_ssd1289.c, а в .h исправьте эту строку на
extern LCD_WINDOW_t LCD_WINDOW;

Хотя бы так.
Аналогичные ошибки исправлять также.

В кокосе и в кейле разные компиляторы.
gcc видать сам способен переваривать подобный бардак. Это, скорее его минус, чем плюс. Не фиг поощрять программистские баги... Пожалуйста не обижайтесь, это моё личное мнение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 12 янв 2016, 15:46 
Старожил

Зарегистрирован: 28 ноя 2013, 14:12
Сообщения: 294
Спасибо. Компиляцию прошло.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 12 янв 2016, 15:47 
Старожил

Зарегистрирован: 26 июл 2015, 12:24
Сообщения: 660
hd44780,
Спасибо за разъяснения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 12 янв 2016, 16:01 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1794
Откуда: Донецк, ДНР
та не за что.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 08 авг 2017, 14:22 
Здравствуйте!

Зарегистрирован: 06 апр 2017, 00:52
Сообщения: 4
хоть и тема старая все равно плюсану, так как только здесь нашел решение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil Error: L6200E (stm32f4)
СообщениеДобавлено: 08 авг 2017, 14:27 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5896
hd44780 писал(а):
В кокосе и в кейле разные компиляторы.
gcc видать сам способен переваривать подобный бардак. Это, скорее его минус, чем плюс. Не фиг поощрять программистские баги... Пожалуйста не обижайтесь, это моё личное мнение.


Увы это баг кокоса и гнутый компиль здесь ни причем.
Ну а хомячки пусть юзают эту срань...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB