Хотя MATLAB® исходный код (.m
) исполняемый сам по себе, к содержимому исходных файлов MATLAB можно легко получить доступ, раскрывая детали проекта и реализации. Если вы не хотите распространять код вашего проприетарного приложения в этом формате, можно использовать один из следующих опций:
Развертывание как P-код - Преобразуйте некоторые или все ваши файлы исходного кода в скрытую содержимым форму, называемую P-code файлом (из его .p
расширение файла) и распространите код вашего приложения в этом формате. Когда MATLAB P-кодирует файл, файл запутывается без шифрования. Пока содержимое в .p
файл трудно понять, его не следует считать безопасным. Не рекомендуется, чтобы вы Pcode-файлами для защиты вашего интеллектуального свойства.
MATLAB не поддерживает преобразование live скриптов или live функций в Pcode-файлы.
Скомпилируйте в двоичный формат - Скомпилируйте свои файлы исходного кода с помощью MATLAB Compiler, чтобы создать автономное приложение. Распространите последние среди конечных пользователей вашего приложения.
Pcode-файл ведет себя так же, как источник MATLAB, из которого он был создан. Pcode-файл также запускается с той же скоростью, что и исходный файл. Pcode-файлы намеренно запутаны. Они не зашифрованы. Пока содержимое в .p
файл трудно понять, его не следует считать безопасным. Не рекомендуется, чтобы вы Pcode-файлами для защиты вашего интеллектуального свойства.
Примечание
Поскольку пользователи Pcode-файлов не могут просмотреть код MATLAB, рассмотрите предоставление диагностики, чтобы позволить пользователю продолжить в случае ошибки.
Чтобы сгенерировать Pcode-файл, введите следующую команду в Командном окне MATLAB:
pcode file1 file2, ...
Команда создает файлы, file1.p
, file2.p
и так далее. Преобразование всех
.m исходные файлы, находящиеся в текущей папке в Pcode-файлы, используйте команду:
pcode *.m
См. pcode
страница с описанием функции для описания всех синтаксисов для генерации Pcode-файлов.
Вы вызываете полученный Pcode-файл таким же образом, как и MATLAB .m
исходный файл, из которого он был выведен. Например, чтобы обратиться к файлу myfun.p
, type
[out, out2, ...] = myfun(in1, in2, ...);
Как вызвать скрипт myscript.p
, type
myscript;
Когда вы вызываете Pcode-файл, MATLAB предоставляет ему приоритет выполнения над соответствующим .m
исходный файл. Это верно, даже если вам случится изменить исходный код в какой-то момент после генерации Pcode-файла. Не забудьте удалить .m
исходный файл перед распространением вашего кода.
Pcode-файлы спроектированы так, чтобы быть независимыми от релиза, под которым они были созданы, и от релиза, в котором они используются (обратная и прямая совместимость). Новые и устаревшие функции MATLAB могут быть проблемой, но это та же проблема, которая существовала бы, если бы вы использовали исходный входной файл MATLAB. Чтобы исправить ошибки этого рода в Pcode-файле, исправьте соответствующий входной файл MATLAB и создайте новый Pcode-файл.
Pcode-файлы, созданные с использованием MATLAB Version 7.4 и более ранних версий, имеют другой формат, чем файлы, созданные с более поздними версиями MATLAB. Эти старые Pcode-файлы не запускаются в MATLAB 8.6 (R2015b) или более поздней версии. Перестроите все Pcode-файлы, которые были созданы с помощью MATLAB 7.4 или более ранней версии, используя более позднюю версию MATLAB, и затем перераспределите их по мере необходимости.
Другой способ защитить свой исходный код - это встроить его в независимый исполняемый файл и распространить исполняемый файл, наряду с любыми другими необходимыми файлами, среди внешних клиентов. Для подготовки файлов к развертыванию необходимо иметь MATLAB Compiler™ и поддерживаемый компилятор C или C++. Конечному пользователю, однако, MATLAB не нужен.
Чтобы создать автономное приложение для вашего приложения MATLAB, разрабатывайте и отлаживайте приложение в соответствии с обычной процедурой для программных файлов MATLAB. Затем сгенерируйте исполняемый файл или файлы, следующие инструкциям в Create Standalone Application from MATLAB (MATLAB Compiler).