2

OS X 10.6 で SDL 2.0 をコンパイルしようとしていますが、次のメッセージが表示されます。

Undefined symbols:
  "_libiconv_open", referenced from:
      _SDL_iconv_string in SDL_iconv.o
      _SDL_iconv_string in SDL_iconv.o
  "_libiconv", referenced from:
      _SDL_iconv in SDL_iconv.o
      _SDL_iconv_string in SDL_iconv.o
  "_libiconv_close", referenced from:
      _SDL_iconv_string in SDL_iconv.o
      _SDL_iconv_string in SDL_iconv.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

https://github.com/mxcl/homebrew/issues/894で問題を読み、MacPort の libiconv を Mac のデフォルトの 64 ビット バージョンに置き換えるには? それらのいずれかが役立つかどうかを確認します。これら 2 つは、問題が同じライブラリの複数のバージョンに関連していることを示唆しているように見えたので、MacPorts のすべてをアンインストールしました (インストールした libiconv には、手動ですべてをアンインストールするには依存関係が多すぎて、もう必要ありませんでした)。しかし、まだ同じエラーが発生しています。何か案は?

4

2 に答える 2

4

そのため、MacPortsコピーをアンインストールした後も、コンピュータに異なるlibiconvのコピーが2つ残っていたことがわかりました。1つは/usr/ libにあり、もう1つは/ usr / local/libにありました。/ usr / libにあるものでコンパイルすると上記のエラーが発生しましたが、MakefileのEXTRA_LDFLAGS変数に-L / usr / local/libを追加すると機能しました。

于 2012-11-01T07:47:52.727 に答える
2

簡単な解決策を見つけました。SDL ソースを構成するときに、さらに 2 つのパラメーターを追加するだけです。

./configure CPPFLAGS='-I/opt/local/include' LDFLAGS='-L/opt/local/lib'
于 2014-04-05T09:27:54.560 に答える