我正在尝试使用增强日志功能。 Boost的版本为1_70。我已经构建了Boost库并将VS2017配置为指向标头和库目录。但是,在链接时,VS显示了链接错误:
libboost_log_setup-vc141-mt-x64-1_70.lib(matches_relation_factory.obj): 错误LNK2001:无法解析的外部符号 ...致命错误LNK1120:6个未解决的外部因素
在构建Boost库时,我运行了以下命令:
引导程序
其次:
bjam toolset = msvc-14.10 variant = debug,释放线程= multi link = static
编译成功完成。
然后,我将VS2017配置为x_64的boost头文件和库目录,以进行Debug和Release配置: 右键单击项目->属性-> VC ++目录->包含目录
C:\ boost_1_70_0
右键单击项目->属性-> VC ++目录->库目录
C:\ boost_1_70_0 \ stage \ lib
右键单击项目->属性-> C / C ++->常规->其他包含目录
C:\ boost_1_70_0
右键单击项目->属性->链接器->常规->其他库目录
C:\ boost_1_70_0 \ stage \ lib
我还在Visual Studio中搜索了类似的链接错误以获取增强日志。我发现最接近的是boost库是基于32位而不是64位构建的。我检查了C:\ boost_1_70_0 \ stage \ lib,并且同时有x32和x64 lib文件,并且存在libboost_log_setup-vc141-mt-x64-1_70.lib。
目标计算机也是x64。在链接器->高级->目标计算机下:
机器X64
产生链接错误的代码是:
#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
void LogManager::VInitLogging()
{
boost::log::register_simple_filter_factory<boost::log::trival::severity_level,char>("Severity");
…
}
缺少什么或没有正确完成链接失败?