提升1.57.0程序选项MSVS 2013链接器错误

时间:2014-11-28 21:46:21

标签: c++ c++11 boost visual-studio-2013 linker

我正在尝试更新我的代码和库,以便在Visual Studio 2013中使用,但我遇到了Boost 1.57.0的问题。无论出于何种原因,由于两个链接器错误(使用program_options构建项目或尝试构建库本身),MSVC 12.0拒绝正确编译program_options。

我已经尝试构建库但这些链接器错误阻止了它。我也使用位于此处的预构建的SourceForge二进制文件来获取这些错误:http://sourceforge.net/projects/boost/files/boost-binaries/1.57.0/

这些是我得到的链接器错误:

  

错误LNK2001:未解析的外部符号&#34; class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > boost::program_options::arg&#34; (?ARG @ program_options @ @@升压3V?$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@ A)

     

错误LNK2001:未解析的外部符号&#34; public: static unsigned int const boost::program_options::options_description::m_default_line_length&#34;   (?m_default_line_length @ options_description @ program_options @ @@升压2IB)

我在过去的三个小时里一直在谷歌搜索这个问题,但是我找不到解决这个问题的方法(以前发布的几个很老版本的Boost解决方案对我来说都不起作用)。

其他一些信息:

库名:libboost_program_options-vc120-mt-1_57 RT库:多线程DLL(/ MD)

如果您需要任何其他信息,请告诉我,我会将其添加到o。交。

1 个答案:

答案 0 :(得分:3)

您必须链接到静态库。尝试链接到boost_program_options-vc100-mt-sgd-1_47.lib而不是libboost_program_options-vc120-mt-gd-1_57.lib

s表示库的静态版本。您可以查看Boost Library Naming以获取有关命名约定的更多详细信息。

要修复多个定义链接器错误,请在“配置属性”&gt;&gt;中更改Visual Studio运行时库选项。 C / C ++&gt;&gt;代码生成&gt;&gt;运行时库从多线程调试DLL(/ MDd)到多线程调试(/ MTd)。