0

我在 WINDOWS 机器上使用 Borland Turbo C++ 编译器,并用 C 编写了一段代码。

我想将互补误差函数 erfc() 用于我的一项计算。

但是,当我运行代码时,错误是“链接器错误:模块 filename.c 中的未定义符号 _erfc”

这里的问题是 erfc() 和 erf() 应该包含在 math.h 库中。但是,这些在我的中不可用。

谁能告诉我如何在我的程序中包含这些功能?

谢谢

4

2 回答 2

4

您可能需要传递一些特殊选项来链接到数学库。

Borland Turbo C++ 也可能不支持该erfc()功能。

在 C 语言中,1990 年 ISO C 标准不包括该erfc()功能。它是由 1999 年标准添加到语言中的。(我不确定 C++。)我认为 Borland Turbo++ 已经相当老了。

尝试编写一个调用sqrt(). 如果你可以让它工作,erfc()但仍然无法识别,那么 Borland 不支持它。

在后一种情况下,要么获得更新的编译器(有许多免费的编译器,无论如何这可能是一个好主意),或者找到erfc().

于 2011-10-05T04:07:47.637 回答
1

您需要链接到数学库。在 Unix 机器上,这是通过将-lm标志传递给链接器来完成的,这意味着“链接到名为 libm 的库”。您可能需要为 Borland 做类似的事情,但我不确定细节。希望这将使您朝着正确的方向前进。

于 2011-10-05T03:44:56.690 回答