2010-01-03 13 views
8

Sto provando a chiamare il motore Matlab in modo programmatico da un programma C su Linux (Matlab r2009a, Ubuntu 9.10).Connessione al motore Matlab da C in Linux

Ho il mio codice (che funziona in Windows), ma per ora sto solo cercando di far funzionare il programma "engdemo.c" di Matlab su Linux. Sono riuscito a compilare & collegandolo (dopo aver incluso circa 15 -l<lib> switch sulla riga di comando di gcc), e anche risolto tutti i link dinamici di runtime tramite qualche magia di ldconfig.

Tuttavia, quando si esegue il programma, viene visualizzato il messaggio di errore "Impossibile avviare MATLAB engine" e il programma termina, senza indicazione del motivo per cui non è riuscito.

Qualcuno ha fatto questo lavoro? Cosa ho dimenticato di fare?

p.s. Inizialmente l'ho chiesto a SuperUser perché penso che sia correlato alla configurazione, ma vedo altri motori relativi a Matlab? Sono qui, quindi ho pensato di provarlo.

risposta

7

È necessario eseguire strace sul programma C per vedere dove le cose vanno male. In genere, ho trovato che la maggior parte del tempo si tratta di uno:

  • Non avendo csh installato
  • Avere l'ambiente impostato sbagliato, a volte LS_COLORS viti le cose con csh
+0

Chiamata piacevole: l'installazione di tcsh ha funzionato. Grazie! –

+0

BTW, grazie per il suggerimento su strace - non sapevo nemmeno che esistesse! La pagina –

0

MathWorks ha documentato questo su their website, in particolare la seguente nota:

Nota: Per eseguire il motore MATLAB sulla piattaforma UNIX, è necessario disporre della shell C csh installata a /bin/csh.

+0

non esiste più. –

+0

@Padenton: risolto – Amro