注册 登录
编程论坛 C++教室

用Visual Studio 2010编译C++程序程序时出现这样的错误,如何解决?

hsnr 发布于 2011-08-06 08:58, 723 次点击
用Visual Studio 2010编译C++程序程序时出现这样的错误提示“1>graph.obj : error LNK2019: 无法解析的外部符号 _drand48,该符号在函数 ___RandomizeGraph 中被引用”。可是函数RandomizeGraph为:

/*************************************************************************
* This function randomly permutes the adjacency lists of a graph
**************************************************************************/
void RandomizeGraph(GraphType *graph)
{
  int i, j, k, l, tmp, nvtxs;
  idxtype *xadj, *adjncy, *adjwgt;

  nvtxs = graph->nvtxs;
  xadj = graph->xadj;
  adjncy = graph->adjncy;
  adjwgt = graph->adjwgt;

  for (i=0; i<nvtxs; i++) {
    l = xadj[i+1]-xadj[i];
    for (j=xadj[i]; j<xadj[i+1]; j++) {
      k = xadj[i] + RandomInRange(l);
      SWAP(adjncy[j], adjncy[k], tmp);
      SWAP(adjwgt[j], adjwgt[k], tmp);
    }
  }
}
其中似乎没有用到变量drand48啊,这是咋回事?
2 回复
#2
hahayezhe2011-08-06 15:05
没用过2010,猜测应该是某变量未定义造成的原因
至于_drand48应该是编译器自己解析定义的变量名吧
#3
conna452011-08-06 15:48
哎。这样的情况,原因有好几种。
你重新建立项目,然后自己手打输入代码。别复制从qq上传过来的代码。
1