2009-11-24 22 views
9

Ho creato un progetto di distribuzione che funziona piuttosto bene e ora voglio aggiungerlo al repository di controllo del codice sorgente affinché altri possano usarlo.
Il problema principale che sto affrontando è che il file .prj che crea deploytool contiene percorsi assoluti che non funzioneranno su altri computer. Finora ho provato quanto segue:Distribuzione Matlab: aggiungi file al controllo del codice sorgente?

  • Creare stand alone exe utilizzando solo mcc senza deploytool. Funziona benissimo ma ho trovato il modo di creare l'ultimo _pkg.exe che contiene tutto. mcc non sembra in grado di creare questo file e non sembra esserci nessun altro strumento che lo faccia. È davvero così?
  • Modificare il file .prj per includere percorsi relativi anziché percorsi assoluti. Funziona solo parzialmente perché il file .prj contiene una sezione denominata MATLABPath che viene sempre sostituita con l'attuale setpath di matlab. chiunque utilizzi questo file dovrà controllarlo poiché viene modificato quando viene utilizzato.
  • Trova un modo per generare il file .prj. la documentazione di MCC dice: Project files created using either mcc or deploytool are eligible to use this option. suggerendo che esiste un modo per creare un file .prj usando mcc ma non sono stato in grado di trovare come questo può essere fatto.

Esiste una soluzione a questa situazione?

+2

Si dovrebbe mettere in una richiesta di miglioramento con MathWorks per questo. –

risposta

-2

Ecco lo mcc option documentation.

Quello che ho trovato più utile è la creazione di un exe standalone utilizzando MCC:

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

L'opzione -C dice mcc per generare il file CTF (che è l'archivio di tutte le cose MATLAB compilato) come un file separato. Ho avuto problemi su alcuni computer di destinazione utilizzando un singolo exe con tutto compilato.

L'opzione -m dice mcc per creare un exe.

Le opzioni -a indicano mcc per includere il file specificato nel pacchetto. Ad esempio, se lo script utilizza due file fig e un file di dati, è necessario un -a per ciascuno per assicurarsi che vengano inseriti nel pacchetto di output.


A dire MCC di utilizzare un file di progetto (non ho mai fatto questo io stesso):

mcc -F <projectfile> 

Inoltre, se si sta utilizzando R2009a su Windows, c'è un known bug that requires some manifest manipulation.

+1

Wow, forse la prossima volta puoi preoccuparti di leggere effettivamente la domanda stessa piuttosto che solo i tag. – shoosh

+0

@shoosh - Hai ragione, ho sfogliato la domanda e risposto qualcosa che mi aspettavo di vedere, non quello che hai chiesto. Mi dispiace per quello In realtà non ho mai usato 'deploytool' nel modo in cui lo hai, quindi non ho capito cosa intendevi per _pkg.exe. Avrei dovuto leggere un po 'prima di saltare con una risposta. – mtrw

3

Ci siamo imbattuti nella stessa cosa con Matlab Builder JA. Non solo i percorsi sono assoluti, Matlab aggiunge anche altre toolbox che trova sul percorso, il che è irritante, poiché la macchina di compilazione non ha licenze per molti di essi.

Quindi quello che facciamo è:

  • Modificare il file prj a mano per sbarazzarsi dei percorsi assoluti
  • Controlla in controllo del codice sorgente e costruire con MCC
  • MAI MAI il check-nei prj file dopo che è stato toccato da deploytool (fai tutte le modifiche a mano in un editor)

Il nostro controllo di revisione consente di modificare i file senza un checkout esplicito, quindi l'uso di deploytool non è un problema. Ma perché vorresti?

Non sono sicuro di ciò che fa il pacchetto finale, ma se si raggruppa solo l'MCR con il file binario compilato, scriverei semplicemente una sostituzione.

Problemi correlati