Chevauchement entre les extensions de fichiers Objective-C et MATLAB/Octave

est-ce que Objective-C ou MATLAB/Octave ont des extensions de fichier source en plus de .m ? Je demande parce que je mets les programmes Hello World dans un seul dossier et je ne peux pas avoir deux fichiers hello.m .

3
demandé sur mcandre 2011-08-06 06:20:05

3 réponses

une solution serait d'utiliser .mm pour L'objectif-C. .mm est utilisé pour les fichiers source de L'Objectif-C++ et c'est un super-ensemble de L'objectif-c donc il devrait compiler fine.

il ne s'agit nullement d'une solution propre. Une bien meilleure façon serait de réorganiser votre dossier en sous-dossiers comme suggéré par Ruddy Velthuis, ou simplement d'appeler vos fichiers source hello-objective-c.m et hello-matlab.m .

1
répondu Simon 2011-08-06 14:07:44

la seule façon que je vois est de créer des sous-répertoires pour chacun des programmes et y mettre vos fichiers. Vous pouvez dire à Obj-C de traiter D'autres extensions comme Obj-C, mais cela ne résoudrait pas le problème pour les autres programmes.

mise à Jour

pour compiler n'importe quelle extension comme objectif-C, utilisez -x objective-c sur la ligne de commande ou sélectionnez Objectif-C de" compiler des Sources comme " dans les paramètres de construction de la cible. La valeur par défaut est "selon le type de fichier", ce qui signifie que seul .les fichiers m sont compi lables comme objectif-C.

FWIW, il y a beaucoup de différences subtiles entre Objective-C++ et Objective-C. je me serait d'utiliser des sous-dossiers pour séparer les .m de fichiers, comme je l'ai déjà dit ci-dessus.

2
répondu Rudy Velthuis 2011-08-06 04:54:56

MATLAB ne peut pas trouver les fichiers à moins qu'ils n'aient l'extension .m (très important!)

maintenant je sais très peu de choses sur Objective-C, je présume que c'est un super-ensemble de C (comme C++ est). Si c'est le cas, et similaire à C/C++, vous devriez pouvoir passer n'importe quel nom de fichier comme entrée au compilateur:

g++ -c myfile.m.txt
0
répondu Amro 2011-08-06 04:22:44