【发布时间】:2011-10-21 07:36:23
【问题描述】:
除了.m 之外,Objective-C 或 MATLAB/Octave 是否有源文件扩展名?我问是因为我将 Hello World 程序放在一个文件夹中,我不能有两个 hello.m 文件。
【问题讨论】:
标签: objective-c matlab octave file-extension
除了.m 之外,Objective-C 或 MATLAB/Octave 是否有源文件扩展名?我问是因为我将 Hello World 程序放在一个文件夹中,我不能有两个 hello.m 文件。
【问题讨论】:
标签: objective-c matlab octave file-extension
我看到的唯一方法是为每个程序创建子目录并将文件放在那里。您可以告诉 Obj-C 将其他扩展视为 Obj-C,但这并不能解决其他程序的问题。
更新
要将任何扩展编译为 Objective-C,请在命令行上使用 -x objective-c 或从目标构建设置中的“Compile Sources As”中选择 Objective-C。默认是“根据文件类型”,这意味着只有 .m 文件被编译为 Objective-C。
FWIW,Objective-C++ 和 Objective-C 之间有许多细微的差别。正如我上面已经说过的,我自己会使用子文件夹来分隔 .m 文件。
【讨论】:
-x objective-c 或在 Targets 设置中使用“Compile Sources As”(显示全部)。
MATLAB 无法找到文件,除非它们具有 .m 扩展名(非常重要!)
现在我对 Objective-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。
【讨论】: