我在头文件和源文件中有这段代码。这是代码的小片段。这是来自.cpp
文件。
int sample(Cdf* cdf)
{
//double RandomUniform();
double r = RandomUniform(); //code that is causing the error
for (int j = 0; j < cdf->n; j++)
if (r < cdf->vals[j])
return cdf->ids[j];
// return 0;
}
这是来自.c
文件:
double RandomUniform(void)
{
double uni;
/* Make sure the initialisation routine has been called */
if (!test)
RandomInitialise(1802,9373);
uni = u[i97-1] - u[j97-1];
if (uni <= 0.0)
uni++;
u[i97-1] = uni;
i97--;
// ...
}
这是来自我的头文件
void RandomInitialise(int,int);
double RandomUniform();
double RandomGaussian(double,double);
int RandomInt(int,int);
double RandomDouble(double,double);
我#include "headerfile.h"
在.cpp
文件中使用过,然后我编译了代码。从片段中可以看出,我基本上RandomUniform()
是在调用文件中的函数,.cpp
然后在头文件中定义它。
问题是,每当我构建程序时,都会收到“未定义的函数引用”错误。这是我得到的错误
In function 'Z6sampleP3Cdf':
undefined reference to 'RandomUniform()'
有人知道吗?