Примечание: Предусматривается, что компьютер знают все, и рассказывать, где какая кнопка находится, я не буду.
Среда разработки: CubeMX, CubeIDE. Всегда последней версии.
Микроконтроллеры: серия STM32.
В прошлой статье я показал файловую структуру проекта. Чтобы не возникало вопросов, объясню почему я пришёл именно к такой структуре:

- Все проекты хранятся в одном каталоге.
- В каждом каталоге содержится всё, что относится к нему: схемы, платы, техническое задание, код, исходные и справочные материалы.
- Библиотеки для МК.
Сначала, когда я только начинал, я копировал библиотеки в каталог с кодом. Но, когда количество проектов и МК сильно увеличилось, я начал путаться в библиотеках. Часть из них усовершенствовал, часть изменил, а растолкать по проектам забывал. Из-за этого происходила огромная путаница и потеря наработок. Поэтому я и выделил библиотеки в отдельный каталог, а если собираюсь писать новую или модернизировать старую, то текущий каталог с библиотеками я архивирую и обязательно оставляю комментарий, что в нём собираюсь менять.
Так как библиотеки и проекты хранятся в одном каталоге, их удобно переносить с компьютера на компьютер. Позже будет показана маленькая хитрость, позволяющая копировать данный каталог с проектами на любой диск, с любой буквой, и ничего не будет теряться и будет работать дальше. Только одно условие. Данные каталоги должны быть относительно друг друга именно в таком порядке. А теперь продолжим...
У нас есть два пути:
- Сделать так, чтобы каталог проектов MTWorkDevel можно было перемещать на любой диск целиком и свободно работать над проектом;
- Каталог проектов привязать к определённому диску, но каталог конкретного проекта можно записывать куда угодно.
Перед тем, как рассмотрим варианты, давайте ещё немного позанимаемся удалением. Удаляем каталог Drivers:

И ещё один лишний файл:

Переходим в настройки проекта, и в указанных пунктах, при указанных опциях, удаляем ссылки на каталоги, отмеченные синим (обратите внимание на выделенные позиции):

Вариант №1.

Переходим в Source Location и нажимаем кнопку "Link Folder". Если данной закладки нет, нужно нажать "Apply and Close" и открыть настройки заново (этот глюк ещё не устранили):

Ставим галочку, нажимаем кнопку "Browse" и выбираем папку с каталогом с ядра:

Начинаем прописывать пути (обратите внимание на выделенные позиции):

Если посмотреть внимательно, то путь прописан не так "C:/WorkDevel/STM32Lib/Device/Stm32F4xx", а "../../../../STM32Lib/Device/Stm32F4xx". Что это даёт? В первом случае вы путь библиотек жёстко привяжете к месту на определённом диске и при переносе проекта на другой компьютер будете получать сообщения, что каталоги не найдены. Во втором случае "/.." означают перейти на каталог выше. Таким образом мы задаём относительный путь для наших библиотек. Как вычислить этот путь?

Наш код находится в Src. Чтобы попасть в каталог Developer, нужно перейти на 4 шага выше. Отсюда у нас идёт цепочка из 4 шагов "../../../../". Далее уже название самого каталога. Результирующая цепочка - "../../../../STM32Lib/Device/Stm32F4xx". То же самое и для файлов библиотек, независящих от ядра МК.
Указывать нужно именно каталог, где находятся библиотеки. Файлы с кодом компилятор ищет сам, если я не путаю - в каталогах Src и Source (кому интересно, может проверить сам).
Переключаем конфигурацию на Release и нажимаем кнопку "Add Folder":

Добавляем указанные каталоги, это позволит компилировать нам и в конфигурации Release:

Теперь можно нажимать кнопку "Apply" и "Apply and Close". Почему именно так? В ранних версиях CubeIDE был глюк. Не нажмёшь "Apply", изменения не сохранятся. В начале я предупреждал, что всегда пользуюсь самыми свежими версиями программного обеспечения, но, если кто-то пользуется старой версией, может наступить на эти грабли.
У нас появятся линки на эти каталоги:

Примечание: ссылки не редактируются, только удаление