C pow和lround(来自math.h)不在solaris中工作

C pow和lround(来自math.h)不在solaris中工作,c,solaris,C,Solaris,我正在编写和实现Miller-Rabin素性测试。我相信我已经正确地实现了它,但是我无法让我的C代码在solaris上编译。这段代码在OSX和Debian中编译得很好,但在solaris中出现了链接错误。当我尝试链接我的程序时,出现以下错误: gcc -Wall prime.o -o prime Undefined first referenced symbol in file pow

我正在编写和实现Miller-Rabin素性测试。我相信我已经正确地实现了它,但是我无法让我的C代码在solaris上编译。这段代码在OSX和Debian中编译得很好,但在solaris中出现了链接错误。当我尝试链接我的程序时,出现以下错误:

gcc -Wall prime.o -o prime
Undefined                       first referenced
 symbol                             in file
pow                                 prime.o
lround                              prime.o

我包括stdio.h、stdlib.h和math.h。有人知道问题出在哪里吗?我知道在solaris中,有时需要针对添加库进行链接,这可能是问题所在吗?

您需要使用
-lm
进行链接。尝试:

gcc -Wall prime.o -o prime -lm

关于这一点,还有一个问题。

您需要链接到
-lm
。尝试:

gcc -Wall prime.o -o prime -lm

关于这一点,还有一个问题。

使用-lm标志链接数学库

使用-lm标志链接数学库

解决了这个问题。我需要链接到
-lm

来解决这个问题。我需要链接到
-lm

Max,请不要使用煽动性语言。这不是建设性的。我标记了这个答案。不知道是否需要标记,但Solaris确实是一个漂亮的操作系统。Solaris与这里的任何其他Unix或Linux操作系统都没有区别-您必须指定在所有这些操作系统上定义函数的库,编译器不会为您查找它们。Max,请不要使用煽动性语言。这不是建设性的。我标记了这个答案。不知道是否需要标记,但Solaris确实是一个漂亮的操作系统。Solaris与这里的任何其他Unix或Linux操作系统都没有区别-您必须指定在所有这些操作系统上定义函数的库,编译器不会帮您查找它们。