VS2010上的Boost Log连接错误

时间:2011-09-19 17:09:07

标签: c++ visual-studio-2010 boost linker-errors

我正在尝试在VS2010上构建和运行Boost.Log库。

我从他们的SVN中获取了主干中的最新文件。 我将所有头文件和源文件拖到win32 .exe项目中,设置所有boost(1.47)include \ lib目录。 在使用.mc文件播放一段时间后,我设法从中生成头文件和.rc文件。

还要确保将运行时库设置为多线程调试DLL(/ MDd)。

我的主要cpp文件是:

#include "stdafx.h"
#include <boost/log/trivial.hpp>

int _tmain(int argc, _TCHAR* argv[]){
    BOOST_LOG_TRIVIAL(error) << "An error severity message"; }

一切都在编译,但后来我得到了这个LINK错误:

错误LNK1104:无法打开文件'libboost_log_setup-vc100-mt-gd-1_47.lib'

出现问题: 我正在构建一个.exe项目,为什么要查找这个.lib文件?我有资源和所有。 链接器如何知道名称'libboost_log_setup-vc100-mt-gd-1_47'?我在链接选项中找不到任何残余,也没有在源代码中找到。

我可以在这做什么?

如果有人可以引导我到Boost.Log的已经构建和工作的VS2010 .lib,那将是最好的。

P.S。 在此之前,我尝试从boost.log源编译一个.lib文件,并让另一个exe项目使用它。 .lib很好。 但在客户端项目中,我收到了这类错误:

错误LNK2019:未解析的外部符号“void __cdecl boost :: log_mt_nt5 :: trivial :: aux :: init(void)”(?init @ aux @ trivial @log_mt_nt5 @ boost @@ YAXXZ)在函数“public”中引用: static class boost :: log_mt_nt5 :: sources :: severity_logger_mt __cdecl boost :: log_mt_nt5 :: trivial :: logger :: construct_logger(void)“(?construct_logger @ logger @ trivial @ log_mt_nt5 @ boost @@ SA?AV?$ severity_logger_mt @ W4severity_level @琐碎@ log_mt_nt5 @升压@@@源@ 34 @ XZ)

1 个答案:

答案 0 :(得分:0)

Boost.Log是一个编译库;它需要建立。您可以使用bjam构建它,就像构建其余boost一样。

正在搜索的文件名是促进自动链接的结果。查看各种选项。