【发布时间】:2015-09-21 10:12:30
【问题描述】:
我正在将 32 位项目转换为 x64。在大多数情况下,它只是意味着将 64 附加到库路径(并最终为 x64 构建这些库)。现在我假设所有的库都已经准备好了,并且代码也是x64 兼容的。但是我不断收到 boost zlib 库的错误,如下所示:
error LNK2019: unresolved external symbol inflateEnd
error LNK2019: unresolved external symbol inflate
error LNK2019: unresolved external symbol inflateInit_
error LNK2019: unresolved external symbol deflateEnd
error LNK2019: unresolved external symbol deflate
error LNK2001: unresolved external symbol "int const boost::iostreams::zlib::default_compression"
error LNK2001: unresolved external symbol "int const boost::iostreams::zlib::deflated"
error LNK2001: unresolved external symbol "int const boost::iostreams::zlib::default_strategy"
我为链接器启用了详细模式(在 MS Visual Studio 中,您可以通过将 /VERBOSE:LIB 添加到其他链接器选项来实现此目的)。多亏了这一点,我才能看到这条输出线:
Searching .\..\..\libs\boost145\stage\lib64\libboost_zlib-vc100-mt-gd-1_45.lib
这意味着在boost145\stage\lib64 中找到了该库。那么我现在应该寻找什么?
奇怪的是,定义第一组缺失符号(不在boost 中的符号)的文件在项目中有头文件zlib.h 和zconf.h。也许这是一些暗示? zlib.h 将外部符号定义为:
ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
明显的问题是:这个头文件的 lib 文件到底在哪里?
【问题讨论】:
标签: c++ visual-studio-2010 boost zlib