0

g++ を使用して SFML プログラムをコンパイルしましたが、現在は問題なく動作しているように見えます (以前は問題がありました) が、結果の出力を実行しようとすると、次のエラー メッセージが表示されます。

dyld: lazy symbol binding failed: Symbol not found: __ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE
  Referenced from: /Users/fabricecastel/Work/Game_Projects/SFML_tutorials/./a.out
  Expected in: /usr/local/lib/libsfml-graphics.2.dylib

dyld: Symbol not found: __ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE
  Referenced from: /Users/fabricecastel/Work/Game_Projects/SFML_tutorials/./a.out
  Expected in: /usr/local/lib/libsfml-graphics.2.dylib

Trace/BPT trap: 5

問題のフォルダーを確認しましたが、libsfml-graphics.2.dylib はありません。それに加えて、問題が何であり、どのように修正すればよいかについて、私は完全に途方に暮れています。RenderWindow シンボルは dylib に含まれていないように思えますが、そうすべきです。ここで話しているのは SFML 2.1 であり、あいまいなアマチュア プロジェクトではありません。どうしたの?

4

1 に答える 1

0

これらのエラーを再現できる唯一の方法は、GCC と Clang バージョンの SFMLが混在している場合です。同じエラーを作成する 2 つの手順を次に示します。

  • 最初の手順
    1. GCC バージョンをインストールする
    2. アプリケーションをコンパイルします (成功)
    3. Clang バージョンをインストールする
    4. アプリケーションを実行する
  • 2回目の手続き
    1. Clang バージョンをインストールする
    2. アプリケーションをコンパイルします (成功)
    3. GCC バージョンをインストールする
    4. アプリケーションを実行する

別のランタイムをインストールする場合は、アプリケーションを最初から慎重に再構築する必要があります。つまり、.oコンパイルする前に、最終的なバイナリとすべてのファイルを削除します。

于 2013-07-29T09:54:51.933 に答える