У моего клиента есть сеть, которая не имеет доступа к Интернету. Они намерены купить (очень мало) лицензий Matlab только для моих усилий по разработке и моего коллеги. Однако для оперативного использования их персоналом я должен скомпилировать свой код Matlab в файлы *.exe, чтобы операторы не использовали лицензии только для выполнения моего «приложения» / «решения» Matlab (язык, кажется, меняется в эти дни). На самом деле у них не будет mcc
лицензий, поэтому компиляция будет выполняться в сети моей домашней организации.
Проблема в том, что при запуске скомпилированного исполняемого файла не существует очевидного способа заставить его использовать среду выполнения компилятора Matlab (MCR). Если в целевой системе есть лицензии Matlab, она также может их использовать. Однако весь смысл компиляции заключается в том, чтобы избежать использования нескольких лицензий в клиентской сети, чтобы лицензии были доступны для разработки m-файлов, когда это необходимо. Таким образом, уникальная особенность этой ситуации заключается в том, что целевая среда в конечном итоге будет иметь обе лицензии Matlab и MCR, а также требование, чтобы скомпилированные исполняемые файлы использовали только MCR, а не лицензии Matlab.
Mathworks изучает проблему, но перспективы найти решение неясны. Я надеюсь, что это не потребует ручного переназначения сценариев входа в систему для настройки переменных PATH среды, поскольку это сломается при каждом обновлении сценариев входа. Я надеюсь на такое решение, как прагма-подобный оператор в m-файле верхнего уровня или переключатель mcc
. Однако при просмотре документации mcc
ни один переключатель не представляется вероятным кандидатом, кроме -Y license.lic
, и неясно, как его использовать.
Что касается клиента, то еще одно ограничение, с которым я сталкиваюсь, заключается в том, что я не хочу приставать к нему методом проб и ошибок (это не их работа). Это осложняется тем фактом, что также нет эффективного способа донести до них электронный контент, поэтому быстрый итеративный метод проб и ошибок исключен. Кроме того, их целевая среда с лицензиями Matlab еще не существует, хотя процесс ее создания находится в разработке. Это немного проблема курицы и яйца; они получают Matlab, исходя из предположения, что мы можем найти решения для проблем, но трудно заранее исключить риск, исследуя решения, когда целевая среда еще не существует.
В системе моей домашней организации я также сталкиваюсь с ограничением, заключающимся в том, что у меня нет прав на установку MCR. Следовательно, я не могу методом проб и ошибок определить заклинание или рецепт, который игнорирует наличие лицензий Matlab и заставляет использовать MCR. Не то чтобы у меня было на это время, поскольку это очень неэффективный способ достижения цели.
Из-за множества косвенных проблем метод проб и ошибок не подходит, и я надеюсь, что существует стандартный метод принудительного использования MCR по любым лицензиям Matlab, которые могут присутствовать. Я использую R2015b.