1

GeneralUtils.m という名前のファイルとそのヘッダー ファイルを取得しました。私はそれをいくつかのIOSプロジェクトで共有メソッドとして使用しています。

質問: 一部のプロジェクトは成功を収めています。しかし、プロジェクトの1つがコンパイル時にエラーをスローします.mファイル拡張子をmmファイルに変更しています. コンパイルしますが、ちなみに、他のプロジェクトはコンパイルせず、mm拡張子を「m」に再度名前を変更します。

論理を理解したい。私のIOSプロジェクトの一部が拡張子mを必要とし、他のプロジェクトがmmファイル拡張子を必要とするのはなぜですか

エラーの詳細:

Undefined symbols for architecture armv7:
  "randIntBetween(int, int)", referenced from:
   -[Blah method1] in File1.o
   ld: symbol(s) not found for architecture armv7
   clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

1 に答える 1

7

拡張子 .m はそれが Objective-C であることを意味し、拡張子 .mm はそれが Objective-C++ であることを意味します。したがって、これらは異なるファイルであり、その内容を知っておく必要があります。

于 2013-08-04T18:04:42.943 に答える