Objective-C和MATLAB/Octave文件扩展名之间的重叠

Objective-C和MATLAB/Octave文件扩展名之间的重叠,objective-c,matlab,octave,file-extension,Objective C,Matlab,Octave,File Extension,Objective-C或MATLAB/Octave除了.m之外还有源文件扩展名吗?我这样问是因为我要将Hello World程序放在一个文件夹中,而我不能有两个Hello.m文件。我看到的唯一方法是为每个程序创建子目录并将文件放在那里。您可以告诉Obj-C将其他扩展视为Obj-C,但这并不能解决其他程序的问题 更新 要将任何扩展编译为Objective-C,请在命令行上使用-x Objective-C,或在目标生成设置中的“将源代码编译为”中选择Objective-C。默认值为“根据文件类型”,

Objective-C或MATLAB/Octave除了
.m
之外还有源文件扩展名吗?我这样问是因为我要将Hello World程序放在一个文件夹中,而我不能有两个
Hello.m
文件。

我看到的唯一方法是为每个程序创建子目录并将文件放在那里。您可以告诉Obj-C将其他扩展视为Obj-C,但这并不能解决其他程序的问题

更新

要将任何扩展编译为Objective-C,请在命令行上使用
-x Objective-C
,或在目标生成设置中的“将源代码编译为”中选择Objective-C。默认值为“根据文件类型”,这意味着只有.m文件作为Objective-C保存


FWIW,Objective-C++和Objective-C之间有许多细微的区别。我自己会使用子文件夹来分隔.m文件,正如我前面所说的

MATLAB无法找到文件,除非它们具有
.m
扩展名(非常重要!)

现在我对Objto-C了解很少,我认为它是C的超集(就像C++一样)。如果是这样,并且与C/C++类似,您应该能够将任何文件名作为输入传递给编译器:

g++ -c myfile.m.txt

一种解决方法是对Objective-C使用
.mm
.mm
用于Objective-C++源文件,它是Objective-C的超集,因此应该可以很好地编译


这决不是一个干净的解决方案。更好的方法是按照Ruddy Velthuis的建议将文件夹重新组织为子文件夹,或者简单地调用源文件
hello-objective-c.m
hello-matlab.m

如何告诉Obj-c在Objc-c上处理其他扩展?在命令行上使用
-x objective-c
,或者“将源代码编译为”在目标设置中(显示全部)。即使编译器能够处理单个异常Objc文件扩展名,不同的头文件也可能无法与它们一起工作。它是C的超集,不像C++,它不是C.McANDRE的超集:我猜其他人已经建议过了。最好的办法是用不同的文件夹分隔文件Objective-C和Objective-C++之间有许多细微的差别。对于Objective-C,我将使用子文件夹或编译器设置来使用.m以外的扩展名。