Hi all,
partly for curiosity, and mostly in order to know whether it's worthwhile to devote time to the creation of workarounds for old compilers rather than the implementation of new features (all in the interest of users, you know,) I'd like to ask QuantLib users a question: what compiler or compilers are you using for working with QuantLib? A couple of caveats: - please do not reply to all the list--send you answer to me instead - where ambiguity can arise, specify the platform (as in "gcc 3.3 on Linux" or "gcc 3.2 on Windows".) In all cases, please specify the version (as in "Visual C++ 7.1". Finally, as someone might consider this to be sensitive information, I won't publish the results of the poll. Thanks in advance, Luigi ---------------------------------------- Newton's Law of Gravitation: What goes up must come down. But don't expect it to come down where you can find it. Murphy's Law applies to Newton's. |
Hi all,
as someone expressed interest in the aggregate results and argued that they wouldn't be much sensitive: is anyone who answered opposed to my summarizing them? Later, Luigi |
Object Handler linking problem
Hi have a problem when linking my own project (an XLL using XLW to interface with Excel) with the ObjectHandler library files. I'm using Visual C++ 7.1 (.net 2003). Please note that when compiling my project in the debug mode everything works fine, but when I compile in the release mode I get the error message below. Any help would be greatly appreciated. Thanks in advance. Luca PS: the error message follows: ------ Build started: Project: xlProfiloLibWS, Configuration: Release Win32 ------ Linking... ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: static char * __cdecl std::char_traits<char>::copy(char *,char const *,unsigned int)" (?copy@?$char_traits@D@std@@SAPADPADPBDI@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "protected: __thiscall std::_String_val<char,class std::allocator<char> >::_String_val<char,class std::allocator<char> >(class std::allocator<char>)" (??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "protected: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool,unsigned int)" (?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: static char * __cdecl std::char_traits<char>::copy(char *,char const *,unsigned int)" (?copy@?$char_traits@D@std@@SAPADPADPBDI@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "protected: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool,unsigned int)" (?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "protected: __thiscall std::_String_val<char,class std::allocator<char> >::_String_val<char,class std::allocator<char> >(class std::allocator<char>)" (??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll) msvcprt.lib(MSVCP71.dll) : error LNK2005: "bool __cdecl std::operator<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z) already defined in ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: static char * __cdecl std::char_traits<char>::copy(char *,char const *,unsigned int)" (?copy@?$char_traits@D@std@@SAPADPADPBDI@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "protected: __thiscall std::_String_val<char,class std::allocator<char> >::_String_val<char,class std::allocator<char> >(class std::allocator<char>)" (??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "protected: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool,unsigned int)" (?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: static char * __cdecl std::char_traits<char>::copy(char *,char const *,unsigned int)" (?copy@?$char_traits@D@std@@SAPADPADPBDI@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "protected: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool,unsigned int)" (?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "protected: __thiscall std::_String_val<char,class std::allocator<char> >::_String_val<char,class std::allocator<char> >(class std::allocator<char>)" (??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored msvcprt.lib(MSVCP71.dll) : warning LNK4006: "bool __cdecl std::operator<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z) already defined in ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj); second definition ignored Creating library .\Release/xlProfiloLib.lib and object .\Release/xlProfiloLib.exp MSVCRT.lib(cinitexe.obj) : warning LNK4098: defaultlib 'libcd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library mStrikeTreeSwaption.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall QuantLib::Lattice::discountTo(class QuantLib::DiscretizedAsset &,double)const " (?discountTo@Lattice@QuantLib@@UBEXAAVDiscretizedAsset@2@N@Z) Debug/xlProfiloLib.xll : fatal error LNK1120: 1 unresolved externals __________________________________________________________________ Tiscali Adsl 3 Mega Flat con 3 MESI GRATIS! Con Tiscali Adsl 3 Mega Flat navighi con la Supervelocita' a soli 29.95 euro al mese, senza limiti di tempo. E se attivi entro il 31 Marzo, 3 MESI sono GRATIS! Scopri come su http://abbonati.tiscali.it/adsl/sa/2flat_tc/ |
Hi Luca
> Hi > > have a problem when linking my own project (an XLL using XLW to interface > with Excel) with the ObjectHandler library files. I'm using Visual C++ 7.1 > (.net 2003). > Please note that when compiling my project in the debug mode everything works > fine, but when I compile in the release mode I get the error message below. Please could you 1) Determine which runtime library is used by your project. For example let's suppose you're using configuration "Win32 Release" which is set to use runtime library "Single-Threaded" 2) Build the corresponding configuration of ObjectHandler. In this example you'd build ObjectHandler configuration "Win32 Release SingleThread" which uses runtime library "Single-Threaded" 3) Back in your project - ensure that the library path includes the ObjectHandler/lib directory, but don't specify the ObjectHandler lib file that you're linking to 4) Your project should (indirectly) #include ObjectHandler/oh/autolink.hpp, this file will determine the runtime library that your project is using and automatically configure your project to link to the corresponding ObjectHandler library (e.g. ObjectHandler-vc7-s-0_1_0.lib) If you're still having trouble please send another message with the details, please also specify whether you're using the latest (only) ObjectHandler release (0.1.0) or a later CVS snapshot. Many Thanks Eric |
Hi Eric
thanks for replying. > Please could you > 1) Determine which runtime library is used by your project. For > example let's suppose you're using configuration "Win32 Release" which > is set to use runtime library "Single-Threaded" I have tried to compile under different configurations, i.e.: 1) Release, 2) Release Single Thread, 3) Release MT DLL. Unfortunately I always get the same linking errors. > 2) Build the corresponding configuration of ObjectHandler. In this > example you'd build ObjectHandler configuration "Win32 Release > SingleThread" which uses the runtime library "Single-Threaded" I did so, I compiled ObjectHandler under the configurations mentioned above. This is what I have in the ObjectHandler/lib folder: ObjectHandler-vc71-mt-0_1_0.lib ObjectHandler-vc71-mt-s-0_1_0.lib ObjectHandler-vc71-s-0_1_0.lib ObjectHandler-vc71-mt-gd-0_1_0.lib I guess the last one is for compiling in Debug mode, and it seems to be the only one I need for (successfully) compiling my own project both in Debug and in Debug MTDLL. > 3) Back in your project - ensure that the library path includes the > ObjectHandler/lib directory, but don't specify the ObjectHandler lib > file that you're linking to I checked this, and it is set correctly. > 4) Your project should (indirectly) #include > ObjectHandler/oh/autolink.hpp, this file will determine the runtime > library that your project is using and automatically configure your > project to link to the corresponding ObjectHandler library (e.g. > ObjectHandler-vc7-s-0_1_0.lib) My project includes <ObjectHandler/objhandler.hpp> which includes <ObjectHandler/objhandlerdefines.hpp>, which in turn includes #ifdef BOOST_MSVC # include <ObjectHandler/autolink.hpp> #endif Please note that I include the Boost library in my settings, hence I expect that BOOS_MSVC be defined. > If you're still having trouble please send another message with the > details, please also specify whether you're using the latest (only) > ObjectHandler release (0.1.0) or a later CVS snapshot. I use the ObjectHandler release 0.1.0. I hope this helps... Luca __________________________________________________________________ Tiscali Adsl 3 Mega Flat con 3 MESI GRATIS! Con Tiscali Adsl 3 Mega Flat navighi con la Supervelocita' a soli 29.95 euro al mese, senza limiti di tempo. E se attivi entro il 31 Marzo, 3 MESI sono GRATIS! Scopri come su http://abbonati.tiscali.it/adsl/sa/2flat_tc/ |
On 03/17/05 09:54:23, Luca Berardi wrote:
> > My project includes <ObjectHandler/objhandler.hpp> which includes > <ObjectHandler/objhandlerdefines.hpp>, which in turn includes > > #ifdef BOOST_MSVC > # include <ObjectHandler/autolink.hpp> > #endif > > Please note that I include the Boost library in my settings, hence I > expect that BOOS_MSVC be defined. Luca, if you #define BOOST_LIB_DIAGNOSTIC (either by adding it to your project configuration or by adding a #define before including the ObjectHandler headers) you should get a message from the compiler telling you which library it's trying to link. This might help diagnose the problem... HTH, Luigi |
>Luca,
> if you #define BOOST_LIB_DIAGNOSTIC (either by adding it to your >project configuration or by adding a #define before including the >ObjectHandler headers) you should get a message from the compiler telling > >you which library it's trying to link. This might help diagnose the >problem... Just did it, but unfortunately I can't see any useful information in the new output message. This is what I get (please note that the linking section has not been modified): ------ Build started: Project: xlProfiloLibWS, Configuration: Release Win32 ------ Compiling... objectContainer.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib Linking to lib file: ObjectHandler-vc71-mt-0_1_0.lib longstaffSchwarz.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib i_inflationleg.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib i_creditinstrument.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib i_setting.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib i_distribution.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib latticeFunctions.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib Linking to lib file: ObjectHandler-vc71-mt-0_1_0.lib hullWhiteTree.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib Linking to lib file: ObjectHandler-vc71-mt-0_1_0.lib discretizedBermudaSwaption.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib Linking to lib file: ObjectHandler-vc71-mt-0_1_0.lib lmmMontecarloSimulate.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib CMSpricingEngine.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib generalintegral.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib LHPmodel.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib singlecurveonefactormodel.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib multicurveonefactormodel.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib xlwObjectHandler.cpp c:\Programmi\XLW\xlw\XlfExcel.inl(95) : warning C4244: 'argument' : conversion from 'double' to 'size_t', possible loss of data Linking to lib file: QuantLib-vc71-mt-0_3_8.lib Linking to lib file: ObjectHandler-vc71-mt-0_1_0.lib xlwInterface.cpp c:\Programmi\XLW\xlw\XlfExcel.inl(95) : warning C4244: 'argument' : conversion from 'double' to 'size_t', possible loss of data Linking to lib file: QuantLib-vc71-mt-0_3_8.lib mkdata.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib checkFunction.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib MonteCarloSimulate.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib cpicapfloor.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib cmsInstruments.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib settableCoupon.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib cdocoupon.cpp Linking to lib file: QuantLib-vc71-mt-0_3_8.lib Linking... ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: static char * __cdecl std::char_traits<char>::copy(char *,char const *,unsigned int)" (?copy@?$char_traits@D@std@@SAPADPADPBDI@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "protected: __thiscall std::_String_val<char,class std::allocator<char> >::_String_val<char,class std::allocator<char> >(class std::allocator<char>)" (??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "protected: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool,unsigned int)" (?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in msvcprt.lib(MSVCP71.dll) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: static char * __cdecl std::char_traits<char>::copy(char *,char const *,unsigned int)" (?copy@?$char_traits@D@std@@SAPADPADPBDI@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "protected: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool,unsigned int)" (?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "protected: __thiscall std::_String_val<char,class std::allocator<char> >::_String_val<char,class std::allocator<char> >(class std::allocator<char>)" (??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in msvcprt.lib(MSVCP71.dll) libcpd.lib(string.obj) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll) msvcprt.lib(MSVCP71.dll) : error LNK2005: "bool __cdecl std::operator<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z) already defined in ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: static char * __cdecl std::char_traits<char>::copy(char *,char const *,unsigned int)" (?copy@?$char_traits@D@std@@SAPADPADPBDI@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "protected: __thiscall std::_String_val<char,class std::allocator<char> >::_String_val<char,class std::allocator<char> >(class std::allocator<char>)" (??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "protected: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool,unsigned int)" (?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: static char * __cdecl std::char_traits<char>::copy(char *,char const *,unsigned int)" (?copy@?$char_traits@D@std@@SAPADPADPBDI@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "protected: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool,unsigned int)" (?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "protected: __thiscall std::_String_val<char,class std::allocator<char> >::_String_val<char,class std::allocator<char> >(class std::allocator<char>)" (??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored libcpd.lib(string.obj) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in msvcprt.lib(MSVCP71.dll); second definition ignored msvcprt.lib(MSVCP71.dll) : warning LNK4006: "bool __cdecl std::operator<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z) already defined in ObjectHandler-vc71-mt-0_1_0.lib(objecthandler.obj); second definition ignored Creating library .\Release/xlProfiloLib.lib and object .\Release/xlProfiloLib.exp MSVCRT.lib(cinitexe.obj) : warning LNK4098: defaultlib 'libcd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library mStrikeTreeSwaption.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall QuantLib::Lattice::discountTo(class QuantLib::DiscretizedAsset &,double)const " (?discountTo@Lattice@QuantLib@@UBEXAAVDiscretizedAsset@2@N@Z) Debug/xlProfiloLib.xll : fatal error LNK1120: 1 unresolved externals Build log was saved at "file://c:\Dati\ProfiloLib\xlProfiloLibWS_Net\Release\BuildLog.htm" xlProfiloLibWS - 22 error(s), 23 warning(s) __________________________________________________________________ Tiscali Adsl 3 Mega Flat con 3 MESI GRATIS! Con Tiscali Adsl 3 Mega Flat navighi con la Supervelocita' a soli 29.95 euro al mese, senza limiti di tempo. E se attivi entro il 31 Marzo, 3 MESI sono GRATIS! Scopri come su http://abbonati.tiscali.it/adsl/sa/2flat_tc/ |
In reply to this post by Luca Berardi
Hi Luca
There's an error in the ObjectHandler project workspace. In your case you're linking to ObjectHandler configuration "Release MTDLL", that project is supposed to use runtime library "Multi-Threaded DLL" but in fact it uses run-time library "Multi-Threaded Debug". If you correct this error and rebuild you should be OK. Apologies for the inconvenience and thank you for helping to identify this problem, which will be fixed in the upcoming ObjectHandler 0.1.1 release. Regards Eric |
Eric, now it works.
Many thanks for help! By the way -as a separate concern- I wonder whether you are planning to insert into the Object Handler (in a future release) additional methods to do the following things: - erasing objects already stored; - getting a list of all the objects already stored, e.g. as a listing of their corresponding handles. Best, Luca >-- Messaggio Originale -- >From: eric ehlers <[hidden email]> >Reply-To: eric ehlers <[hidden email]> >To: QuantLib users <[hidden email]> >Subject: Re: [Quantlib-users] Object Handler linking problem >Date: Thu, 17 Mar 2005 10:11:51 +0000 > > >Hi Luca > >There's an error in the ObjectHandler project workspace. In your case >you're linking to ObjectHandler configuration "Release MTDLL", that >project is supposed to use runtime library "Multi-Threaded DLL" but in >fact it uses run-time library "Multi-Threaded Debug". If you correct >this error and rebuild you should be OK. > >Apologies for the inconvenience and thank you for helping to identify >this problem, which will be fixed in the upcoming ObjectHandler 0.1.1 >release. > >Regards >Eric > > >------------------------------------------------------- >SF email is sponsored by - The IT Product Guide >Read honest & candid reviews on hundreds of IT Products from real users. >Discover which products truly live up to the hype. Start reading now. >http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >_______________________________________________ >Quantlib-users mailing list >[hidden email] >https://lists.sourceforge.net/lists/listinfo/quantlib-users __________________________________________________________________ Tiscali Adsl 3 Mega Flat con 3 MESI GRATIS! Con Tiscali Adsl 3 Mega Flat navighi con la Supervelocita' a soli 29.95 euro al mese, senza limiti di tempo. E se attivi entro il 31 Marzo, 3 MESI sono GRATIS! Scopri come su http://abbonati.tiscali.it/adsl/sa/2flat_tc/ |
Hi Luca
> Eric, now it works. > Many thanks for help! Excellent! > By the way -as a separate concern- I wonder whether you are planning to insert > into the Object Handler (in a future release) additional methods to do the > following things: > - erasing objects already stored; > - getting a list of all the objects already stored, e.g. as a listing of > their corresponding handles. Sounds good, I'll include both of these features in the next release. For my own purposes I already have code for #2, I didn't release it because it seemed like a debug feature but now that I know there's demand I'll release it. btw the design of ObjectHandler has moved on somewhat since 0.1.0 - the interface layer has been replaced with a factory function - you might want to consider working from the latest CVS snapshot. Regards, Eric |
Free forum by Nabble | Edit this page |