我在 WINDOWS 机器上使用 Borland Turbo C++ 编译器,并用 C 编写了一段代码。
我想将互补误差函数 erfc() 用于我的一项计算。
但是,当我运行代码时,错误是“链接器错误:模块 filename.c 中的未定义符号 _erfc”
这里的问题是 erfc() 和 erf() 应该包含在 math.h 库中。但是,这些在我的中不可用。
谁能告诉我如何在我的程序中包含这些功能?
谢谢
我在 WINDOWS 机器上使用 Borland Turbo C++ 编译器,并用 C 编写了一段代码。
我想将互补误差函数 erfc() 用于我的一项计算。
但是,当我运行代码时,错误是“链接器错误:模块 filename.c 中的未定义符号 _erfc”
这里的问题是 erfc() 和 erf() 应该包含在 math.h 库中。但是,这些在我的中不可用。
谁能告诉我如何在我的程序中包含这些功能?
谢谢
您可能需要传递一些特殊选项来链接到数学库。
Borland Turbo C++ 也可能不支持该erfc()
功能。
在 C 语言中,1990 年 ISO C 标准不包括该erfc()
功能。它是由 1999 年标准添加到语言中的。(我不确定 C++。)我认为 Borland Turbo++ 已经相当老了。
尝试编写一个调用sqrt()
. 如果你可以让它工作,erfc()
但仍然无法识别,那么 Borland 不支持它。
在后一种情况下,要么获得更新的编译器(有许多免费的编译器,无论如何这可能是一个好主意),或者找到erfc()
.
您需要链接到数学库。在 Unix 机器上,这是通过将-lm
标志传递给链接器来完成的,这意味着“链接到名为 libm 的库”。您可能需要为 Borland 做类似的事情,但我不确定细节。希望这将使您朝着正确的方向前进。