0

迷っています 。

私はCCScrollLayerをよく使っていました.cocos2dクラスですが、今は奇妙なエラーが発生しましたmach-o-linker.

  1. プロジェクトにクラスを追加しました ( CCScrollLayer.h+m)
  2. 私はそれらを輸入しました
  3. 私は定義しました: CCScrollLayer *scroller;

次に、このコード行を入れると:

   scroller = [[CCScrollLayer alloc] initWithLayers:[NSArray arrayWithObjects:page1,page2,nil] widthOffset:100];

mach-o-linker エラーが発生しました !!!

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_CCScrollLayer", referenced from:
      objc-class-ref in mainScene.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

プロジェクト設定でarmv6と7を定義しました。

それは何ですか ??私はそれがコードエラーではなく、何か違うことを知っています。

4

4 に答える 4

0

コンパイル ソースに CCScrollLayer があることを確認してください。そこにない場合は、追加します: [ターゲット] > [ビルド フェーズ] > [ソースをコンパイル]

于 2012-12-02T23:11:01.817 に答える
0

CCScrollLayer の実装ファイルがまだ存在しない場合は、ターゲットの BuildPhases の CompileSources に追加する必要があります。

于 2012-09-08T13:17:15.850 に答える
0

それらは正しいターゲットに追加されていますか? よくわかりませんが、多くの macho-o-linker エラーには同じ解決策があると思います。

この投稿を確認してください:デバイス用にコンパイルするときの Apple Mach-O リンカ エラー

于 2012-09-08T13:18:00.940 に答える
0

プロジェクトのソースのコンパイルCCScrollLayer.m段階にリストされていることを確認してください。

このエラーは、リンカーが取得したすべてのオブジェクトで名前付きクラスを見つけられなかったことを意味します。リンカのタスクは、すべてのファイル間リンクが正しくバインドされた最終的な実行可能ファイルを作成することです。リンクの 1 つを実行できない場合、失敗します。

これの一般的な理由は、コンパイル済みファイルの 1 つをリンカーのソース ファイルとして追加するのを「忘れた」ことです。Xcode はすべてのコンパイル済みファイルに基づいて自動的にそれを行うため、コンパイル可能なファイルとして追加するのを忘れている可能性が最も高いでしょう。

于 2012-09-08T13:18:31.953 に答える