2010-01-03 6 views
8

J'essaie d'appeler le moteur Matlab par programme à partir d'un programme C sous Linux (Matlab r2009a, Ubuntu 9.10). J'ai mon propre code (qui fonctionne sous Windows), mais pour l'instant j'essaie simplement de faire fonctionner le programme Matlab "engdemo.c" sur Linux. J'ai réussi à compiler & le lier (après avoir inclus environ 15 -l<lib> commutateurs sur la ligne de commande gcc), et même résolu tous les liens dynamiques d'exécution via une magie ldconfig. Mais, lorsque le programme s'exécute, je reçois le message d'erreur "Impossible de démarrer le moteur MATLAB" et le programme se termine, sans indiquer pourquoi il a échoué.Connexion au moteur Matlab à partir de C sous Linux

Quelqu'un a-t-il fait ce travail? Qu'ai-je oublié de faire?

p.s. J'ai d'abord posé cette question sur SuperUser parce que je pense que c'est lié à la configuration, mais je vois d'autres moteurs liés à Matlab ici, alors j'ai pensé que je pourrais l'essayer.

Répondre

7

Vous devez exécuter strace sur votre programme C pour voir où les choses vont mal. En règle générale, je trouve que la plupart du temps, il se résume à deux:

  • Ne pas avoir csh installé
  • Avoir l'environnement mal réglé, parfois LS_COLORS choses de vis avec csh
+0

Bon appel - l'installation de tcsh a fait l'affaire. Merci! –

+0

BTW, merci pour l'astuce sur strace - Je ne savais même pas qu'il existait! –

0

MathWorks a documenté ceci sur their website, spécifiquement la note suivante:

Remarque: Pour exécuter le moteur MATLAB sur la plate-forme UNIX, le shell C csh doit être installé à /bin/csh.

+0

la page n'existe plus. –

+0

@Padenton: corrigé – Amro