链接库中的未解析的外部符号,srand48和drand48

时间:2014-03-08 02:13:39

标签: c++ msvcrt

我正在使用以前使用cygwin中的vs10sp1编译的Visual Studio编译代码。我差不多完成了,但是我得到了3个未解决的外部符号错误。

类似的东西:

libmetis.lib(util.obj) : error LNK2019: unresolved external symbol srand48 referenced in function __InitRandom

我已经知道这些符号在unix库中,并且通常使用编译器标志来处理。确实在审查时,源代码有标志,

  if (seed == -1) {
#ifndef __VC__
    srand48(7654321L);  
#endif
    srand(4321);  

我正在使用预编译库,我认为它不是使用这些标志构建的。 (我正在编译没有cygwin)。我可以使用此标志链接以使用我需要的功能,还是需要重新编译库?

1 个答案:

答案 0 :(得分:0)

您必须重新编译库。设置#if或#ifdef会根据这些指令或定义有效地隐藏编译器中的代码。

编译后,您无法在编译后更改已编译的代码,因此必须重新编译。