Thanks for the fast response, Steven. However, if the problem was in the way my test application or the library was being built, my program should fail the same way in the RELEASE configuration. With a little more testing, I was able to build the DEBUG configuration if I set the Optimization flag for my test application to O2. In this case, it was still building against the debug version of the boost library (libboost_date_time-vc90-mt-sgdp-1_38.lib) and yet it linked and ran correctly. I suspect this may be related to the bug you mention in this note: http://www.nabble.com/Re:-can't-build-threads-on-msvc-7.1-p21504140.html But even if it is, I don't know how to work around that in my case. Any ideas? Thanks again, Tom -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Steven Watanabe Sent: Friday, March 13, 2009 17:10 To: boost-users@lists.boost.org Subject: Re: [Boost-users] Link errors with MSVC 9 application using Boost date_time on DEBUG build 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@greg_month@gregorian@boost@@QBAPBDXZ) referenced in function "public: static class stlpd_std::basic_ostream
> & __cdecl boost::date_time::month_formatter ,wchar_t>::format_month(class boost::gregorian::greg_month const &,class stlpd_std::basic_ostream > &)" (?format_month@?$month_formatter@Vgreg_month@gregorian@boost@@V?$iso_extended_format@_W@date_time@3@_W@date_time@boost@@SAAAV?$basic_ostream@_WV?$char_traits@_W@stlpd_std@@@stlpd_std@@ABVgreg_month@gregorian@3@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@greg_month@gregorian@boost@@QBAPBDXZ) referenced in function "public: static class stlpd_std::basic_ostream
> & __cdecl boost::date_time::month_formatter ,wchar_t>::format_month(class boost::gregorian::greg_month const &,class stlpd_std::basic_ostream > &)" (?format_month@?$month_formatter@Vgreg_month@gregorian@boost@@V?$iso_extended_format@_W@date_time@3@_W@date_time@boost@@SAAAV?$basic_ostream@_WV?$char_traits@_W@stlpd_std@@@stlpd_std@@ABVgreg_month@gregorian@3@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 mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users