我正在使用以前使用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)。我可以使用此标志链接以使用我需要的功能,还是需要重新编译库?
答案 0 :(得分:0)
您必须重新编译库。设置#if或#ifdef会根据这些指令或定义有效地隐藏编译器中的代码。
编译后,您无法在编译后更改已编译的代码,因此必须重新编译。