请教自建库使用的问题
编写了一个产生随机数的程序,有头文件、函数文件,另编写主程序调用函数文件,程序正常输出。我把函数文件编译成.lib,设定好编译器路径,但在编译时通不过。#include <iostream>
//#include "Dsp.cpp" //直接用函数文件可以完成主程序的编译并正常运行。将此函数文件编译为 .lib
#include <dsp.h>//这是文件头。库文件为 .lib 。出问题了:
using namespace std;
int main()
{
double uniMin, uniMax, x;
int i, j;
long int *s;
cout << "此程序将产生均匀分布的随机数。" << endl;
cout << "请输入均匀区间下限:" ;
cin >> uniMin;
cout << endl << "请输入均匀区间上限:" ;
cin >> uniMax;
cout << "请输入随机数种子:";
cin >> *s;
cout << "请看结果:" << endl;
for( i = 0; i < 10; i++ )
{
for( j = 0; j < 5; j ++ )
{
x = UniForm( uniMin, uniMax, s );//问题出在对 s 的引用上。
cout << x << " ";
}
cout << endl;
}
system( "pause" );
cin.get();
return 0;
}
编译信息:Link Error:Undefined reference to "UniForm( double, double, long * );//什么叫未定义的引用?我另外定义一个引用别名也不行。
ld return 1 exit status //这句话是什么意思?
我直接调用函数文件就行,难道编译成库文件就不行?是不是自建库文件还需要设置什么项目?郁闷呀!
请高手帮忙解释一下。
用的是DEV-C++
//dsp.h内容如下:
#ifndef _dsp_h
#define _dsp_h
/*
函数UniForm在区间( a, b )产生 均匀分布的随机数
*/
double UniForm(double a, double b, long int *seed );
#endif
函数文件:
//dsp.cpp
#include "dsp.h"
//UniForm
double UniForm( double a, double b, long int *seed )
{
double t;
* seed = 2045 * ( * seed ) +1;
* seed = * seed - ( * seed / 1048576 ) * 1048576;
t = ( * seed ) / 1048576.0;
t = a + ( b -a ) * t;
return t;
}
头文件:
//dsp.h内容如下:
#ifndef _dsp_h
#define _dsp_h
/*
函数UniForm在区间( a, b )产生 均匀分布的随机数
*/
double UniForm(double a, double b, long int *seed );
#endif
[ 本帖最后由 rainbow1 于 2010-7-21 00:56 编辑 ]