0

Cプロジェクトでmin()およびmax()関数を使用する際に問題が発生しました。math.hをインポートしましたが、ファイルをコンパイルすると、次のエラーが発生し続けます(llvmの代わりにgccを使用しても同様のエラーが表示されます)。

    Undefined symbols for architecture x86_64:
  "_min", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

問題は、math.hの64ビットライブラリがないか、コンパイラがそれを見つけられないことだと思います。Mac OSX10.7を使用しています。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

libSystem.dylib で "min" が定義されていることがわかりますが、そのためのエクスポートされたヘッダーはないと思います。そして、インクルードファイルに関して、「_min」がどこから来ているのかわかりません。

通常、「min」はマクロまたは独自の関数で参照されます。他の誰かがしばらく前に尋ねたこの非常に関連した質問をチェックしてください。

math.h を見ると、「min」タイプの関数がいくつかありますが、それらは float と double 用です。整数またはカスタム型のみを使用している場合は、独自の関数をロールします。

于 2012-04-28T17:27:26.930 に答える