使用boost::gregori::from_string()时发生链接器错误

Linker error using boost::gregorian::from_string()

本文关键字:错误 链接 gregori boost from string 使用      更新时间:2023-10-16

我在visual studio 2005 1.48版本中使用了boost。尝试使用boost::gregorian::from_string()时收到链接器错误。

#include <string>
#define BOOST_DATE_TIME_SOURCE
#include <boost/date_time/gregorian/gregorian.hpp>
using namespace boost::gregorian;
using namespace std;
void testDate(){
string s("2000-01-10");
date d2 = from_string(s);
}
int main()
{
testDate();
return 0;
}

并获取链接器错误:

error LNK2019: unresolved external symbol "public: static class boost::shared_ptr<class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,unsigned short,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,unsigned short> > > > __cdecl boost::gregorian::greg_month::get_month_map_ptr(void)" (?get_month_map_ptr@greg_month@gregorian@boost@@SA?AV?$shared_ptr@V?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@GU?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@G@std@@@2@@std@@@3@XZ) referenced in function "unsigned short __cdecl boost::date_time::month_str_to_ushort<class boost::gregorian::greg_month>(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$month_str_to_ushort@Vgreg_month@gregorian@boost@@@date_time@boost@@YAGABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)

为什么?

Boost.DateTime对于您来说并不是一个只有表头的库,因为您使用的是from_string;你需要先从源代码编译它,然后在你的项目中链接它。

日期-时间库

boost_date_time-vc140-mt.lib

不在lib文件夹中。我用vcpakcgae管理器安装了它,它起作用了。

相关文章: