如何修复Libboost_log_setup错误LNK 2001未解析的外部符号?

时间:2019-04-14 03:44:59

标签: c++ visual-studio-2017 boost-log

我正在尝试使用增强日志功能。 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");        
    …
}

缺少什么或没有正确完成链接失败?

0 个答案:

没有答案