2009-11-24 1 views
9

Я создал проект развертывания, который работает довольно хорошо, и теперь я хочу добавить его в репозиторий управления версиями для других пользователей.
Основная проблема, с которой я столкнулся, заключается в том, что файл .prj, который создает deploytool, содержит абсолютные пути, которые не будут работать на других компьютерах. До сих пор я попытался следующие:Развертывание Matlab: добавьте файлы в исходный элемент управления?

  • Создать самостоятельные ехе, используя только mcc без deploytool. Это отлично работает, но я мог найти способ создать окончательный _pkg.exe, который содержит все. mcc, похоже, не может создать этот файл, и, похоже, нет никакого другого инструмента. Это действительно так?
  • Редактировать файл .prj, чтобы включить относительные пути вместо абсолютных путей. Это работает только частично, потому что файл .prj содержит раздел, называемый MATLABPath, который всегда заменяется текущим setpath of matlab. любой, кто использует этот файл, должен будет проверить его, поскольку он изменяется при его использовании.
  • Найти способ создания файла .prj. в документации mcc: Project files created using either mcc or deploytool are eligible to use this option., предлагая создать файл .prj с помощью mcc, но я не смог найти, как это можно сделать.

Есть ли решение этой проблемы?

+2

Вы должны поставить в запросе улучшения с MathWorks для этого. –

ответ

-2

Вот mcc option documentation.

Что я нашел наиболее полезным является создание автономного EXE использованием МСС:

mcc -C -m <function.m> -a <fig> -a <dll> -a <etc> -d <outputPath> 

Опция -C сообщает mcc для генерации CTF файл (который является архивом всех скомпилированного материала MATLAB), как отдельный файл. У меня были проблемы с некоторыми целевыми компьютерами, используя один exe со всем скомпилированным.

Опция -m сообщает mcc, чтобы сделать exe.

Параметры -a указывают mcc, чтобы включить указанный файл в пакет. Например, если ваш скрипт использует два файла фига и файл данных, для каждого из них нужно -a, чтобы убедиться, что они попадают в выходной пакет.


Рассказывать МСС использовать файл проекта (я никогда не делал этого сам):

mcc -F <projectfile> 

Кроме того, если вы используете R2009a на Windows, есть known bug that requires some manifest manipulation.

+1

Вау, может быть, в следующий раз вы можете позаботиться о том, чтобы на самом деле прочитать сам вопрос, а не только теги. – shoosh

+0

@shoosh - Вы правы, я просмотрел вопрос и ответил то, что ожидал увидеть, а не то, что вы просили. Извини за это. Я на самом деле никогда не использовал 'deploytool' так, как вы, поэтому я совсем не понял, что вы подразумеваете под _pkg.exe. Я должен был сделать небольшое чтение, прежде чем вскакивать с ответом. – mtrw

3

Мы столкнулись с тем же, что и с Matlab Builder JA. Матрицы не только абсолютны, но и Matlab добавляет другие панели инструментов, которые он находит на пути, что раздражает, поскольку у сборщика нет лицензий для многих из них.

Так что мы делаем:

  • Редактировать файл PRJ вручную, чтобы избавиться от абсолютных путей
  • Проверьте его в систему управления версиями и строить с МКЦ
  • НИКОГДА не проверить в Prj файл после того, как он был затронут deploytool (все изменения вручную в редакторе)

Наш контроль версий позволяет изменять файлы без явного контроля, поэтому использование deploytool не представляет проблемы. Но зачем вам это нужно?

Не знаете, что делает последний пакет, но если он просто связывает MCR с скомпилированным двоичным кодом, я бы просто написал замену.

Смежные вопросы