Следующая проблема: я использую Simulink Coder, Arduino Due и плату расширения собственной разработки для управления мультикоптерами. У меня есть модель Simulink со всеми драйверами устройств (созданными с помощью s-function builder) для взаимодействия с датчиками. У каждого датчика есть собственная библиотека C ++, которая включена в s-функцию. Все файлы C ++ и заголовочные файлы в настоящее время находятся в рабочем каталоге Matlab.
Нет, у меня так много блоков драйверов устройств, что я создал собственную библиотеку блоков Simulink, чтобы делиться и использовать эти блоки в нескольких моделях Simulink. Однако, если я использую блоки из моей библиотеки Simulink, компилятор выдает ошибку, потому что он не может найти файлы c ++ и заголовки, поскольку они находятся не в текущем рабочем каталоге, а в каталоге библиотеки Simulink. Однако библиотека блоков Simulink и все внешние библиотеки C ++ включены в путь поиска Matlab (заданный путь).
Так кто-нибудь знает, как включить внешние библиотеки C ++, когда они вызываются из s-функции в библиотеке блоков Simulink?
Я уже пробовал следующие шаги:
- Я попытался включить c ++ и заголовочные файлы с помощью следующей команды matlab (не работает): set_param ('SimulinkModelName', 'CustomSource', "LibraryName");
- Скопируйте c ++ и заголовочные файлы в каталог библиотек c ++ пакета поддержки Arduino Simulink (не работает).
- Скопируйте все файлы c ++ и заголовков в каталог текущей модели Simulink (работает, однако я не хочу копировать все файлы каждый раз, когда создается новая модель simulink)
У кого-нибудь были подобные проблемы до сих пор?