我试图执行一个使用数学库的文件(更具体地说,它使用的是 sqrt() 函数)。所以我输入了 gcc fileName.c -o fileName,它一直说“对 `sqrt' 的 undefined reference ”。但是当我在谷歌搜索时,有人说要在我的 gcc 调用末尾添加 -lm ,但我不明白为什么,有人可以解释一下吗?谢谢。
山姆
最佳答案
C 编译有两个不同的步骤:编译为目标代码和链接。在编译为目标代码时,文件按原样编译,任何外部符号(如通过包含标题获得的符号)都保留为“空白”。下一个阶段,链接,是填补这些空白的地方。对于许多库,你必须告诉 gcc 去哪里找,所以你必须给出一个 -l
标志(在这种情况下, -lm
用于数学)。
关于c - 在 C 中执行一个使用数学库的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16616938/