0

我在 C 项目中使用 min() 和 max() 函数时遇到问题。我已经导入了 math.h,但是当我编译文件时,我不断收到以下错误(即使使用 gcc 而不是 llvm,也会显示类似的错误):

    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)

我认为问题在于没有 64 位的 math.h 库……或者编译器找不到它。我正在使用 Mac OS X 10.7。我该如何解决这个问题?

4

1 回答 1

1

尽管我可以看到 libSystem.dylib 中定义的“min”,但我认为没有导出的标头。就包含文件而言,我无法弄清楚“_min”的来源。

通常使用宏或您自己的函数来引用“min”。查看其他人不久前提出的这个非常相关的问题。

如果你查看 math.h,那里有一些“min”类型的函数,但它们用于浮点数和双精度数。如果您只是使用整数或自定义类型,请滚动您自己的函数。

于 2012-04-28T17:27:26.930 回答