|
Boost Users : |
Subject: Re: [Boost-users] Link errors with MSVC 9 application using Boost date_time on DEBUG build
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2009-03-13 17:09:45
AMDG
Tom Aylesworth wrote:
> I have a very simple app that I'm trying to link with the Boost date_time library. It links and runs fine with I build against the RELEASE configuration. But I get the following link errors when when I use the DEBUG configuration:
>
> 2>TimeUtil.obj : error LNK2019: unresolved external symbol "public: char const * __cdecl boost::gregorian::greg_month::as_long_string(void)const " (?as_long_string_at_greg_month_at_gregorian@boost@@QBAPBDXZ) referenced in function "public: static class stlpd_std::basic_ostream<wchar_t,class stlpd_std::char_traits<wchar_t> > & __cdecl boost::date_time::month_formatter<class boost::gregorian::greg_month,class boost::date_time::iso_extended_format<wchar_t>,wchar_t>::format_month(class boost::gregorian::greg_month const &,class stlpd_std::basic_ostream<wchar_t,class stlpd_std::char_traits<wchar_t> > &)" (?format_month@?$month_formatter_at_Vgreg_month_at_gregorian@boost@@V?$iso_extended_format@_W_at_date_time_at_3@_W_at_date_time_at_boost@@SAAAV?$basic_ostream@_WV?$char_traits@_W_at_stlpd_std@@@stlpd_std@@ABVgreg_month_at_gregorian@3_at_AAV45@@Z)
>
> 2>TimeUtil.obj : error LNK2019: unresolved external symbol "public: char const * __cdecl boost::gregorian::greg_month::as_short_string(void)const " (?as_short_string_at_greg_month_at_gregorian@boost@@QBAPBDXZ) referenced in function "public: static class stlpd_std::basic_ostream<wchar_t,class stlpd_std::char_traits<wchar_t> > & __cdecl boost::date_time::month_formatter<class boost::gregorian::greg_month,class boost::date_time::iso_extended_format<wchar_t>,wchar_t>::format_month(class boost::gregorian::greg_month const &,class stlpd_std::basic_ostream<wchar_t,class stlpd_std::char_traits<wchar_t> > &)" (?format_month@?$month_formatter_at_Vgreg_month_at_gregorian@boost@@V?$iso_extended_format@_W_at_date_time_at_3@_W_at_date_time_at_boost@@SAAAV?$basic_ostream@_WV?$char_traits@_W_at_stlpd_std@@@stlpd_std@@ABVgreg_month_at_gregorian@3_at_AAV45@@Z)
>
> It is linking against "libboost_date_time-vc90-mt-sgdp-1_38.lib". Using undname, I can see that the library is using the __thiscall convention instead of __cdecl. Is this a problem in my configuration for building the Boost date_time library, or a problem in my app's build configuration?
>
I believe that __thiscall is the default for member functions.
You need to either change your app's build configuration to
use the default or force the date_time library to be built with
__cdecl.
In Christ,
Steven Watanabe
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net