我维护一个旧项目并遇到了一些链接器错误。
错误信息是:
error LNK2019: unresolved external symbol __imp__bsearch referenced in function "bool __cdecl is_sync_host
据我所知,该bsearch
函数包含在头文件“cstdlib”或“stdlib.h”中,但即使包含头文件,我也找不到“bsearch”。
我怀疑这是因为这个旧项目因为符号冲突而忽略了一些库(我也不知道他们为什么更喜欢省略库而不是重命名函数)
被忽略的库:msvcrt.lib;msvcrtd.lib;libcmt.lib;libc.lib
我尝试将那些被忽略的库添加回来,但后来我遇到了很多“符号重新定义”问题,我认为重命名这些函数不是一个适用的解决方案。
我找到了解决方法(替换bsearch
to std::binary_search
),但我想知道为什么以及如何正确解决这个问题(编译器为什么找不到 bsearch?)。谢谢。