Cppunit VS2008

Started by
2 comments, last by _Sigma 15 years, 7 months ago
I am having a problem using CppUnit with Visual Studio 2008(pro edition) which only shows and I am finding quite strange. The only similar post on this board is in relation to the express edition. To me it looks like so part of the debug standard library is not being linked correctly when I use the CppUnit lib not in the build solution, what I mean by this is tests pass when they are used in the upgraded solution provided with the source not in a new project I create. I have tried looking for differences between the two solutions yet can not find any. The release version has no problems at all, is anybody able to shed any light on this.

Linking...
cppunitd.lib(ProtectorChain.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ) 
[added line break] referenced in function "public: void __thiscall std::deque<class CppUnit::Functor *,class std::allocator<class CppUnit::Functor *> >::push_back(class CppUnit::Functor * const &)" [added line break] 
(?push_back@?$deque@PAVFunctor@CppUnit@@V?$allocator@PAVFunctor@CppUnit@@@std@@@std@@QAEXABQAVFunctor@CppUnit@@@Z)
cppunitd.lib(StringTools.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ)
cppunitd.lib(TestResult.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ)
cppunitd.lib(TestResultCollector.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ)
cppunitd.lib(TestPath.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ)
cppunitd.lib(XmlElement.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ)
cppunitd.lib(XmlOutputter.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ)
cppunitd.lib(Message.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ)
cppunitd.lib(TestSuiteBuilderContext.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ)
cppunitd.lib(TestSuite.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Container_base::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base@std@@QBEXXZ)
cppunitd.lib(StringTools.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(Exception.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(Protector.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(ProtectorChain.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(DefaultProtector.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(TestResult.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(TestResultCollector.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(TestPath.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(XmlElement.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(AdditionalMessage.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(TestSuiteBuilderContext.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(TestSuite.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(TextOutputter.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(XmlOutputter.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)[added line break] 
 referenced in function "public: __thiscall std::_Deque_map<class CppUnit::XmlOutputterHook *,class std::allocator<class CppUnit::XmlOutputterHook *> >::~_Deque_map<class CppUnit::XmlOutputterHook *,class std::allocator<class CppUnit::XmlOutputterHook *> >(void)" (??1?$_Deque_map@PAVXmlOutputterHook@CppUnit@@V?$allocator@PAVXmlOutputterHook@CppUnit@@@std@@@std@@QAE@XZ)
cppunitd.lib(TestFactoryRegistry.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(Asserter.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(Message.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)
cppunitd.lib(XmlElement.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)[added line break] 
 referenced in function "public: __thiscall std::pair<class std::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> > >::pair<class std::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> > >(struct std::pair<class std::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?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@QAE@ABU01@@Z)
cppunitd.lib(ProtectorChain.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
cppunitd.lib(StringTools.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
cppunitd.lib(TestSuite.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
cppunitd.lib(TestResult.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
cppunitd.lib(TestResultCollector.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
cppunitd.lib(TestPath.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
cppunitd.lib(XmlOutputter.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
cppunitd.lib(TestFactoryRegistry.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
cppunitd.lib(Message.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
cppunitd.lib(TestSuiteBuilderContext.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base@std@@QAE@XZ)
../bin/debug/cppunit_tests.exe : fatal error LNK1120: 3 unresolved externals





Thanks OOps I have added a line break in the source box above which should make it more readable. [Edited by - CmpDev on September 16, 2008 1:26:49 PM]
Advertisement
It can be done as I am using it!

IIRC, I had to use this to fix the linking problems. I realize that the link is for VS2005, however I recall having to do that.

If that doesn't help, reply here (and send me a PM as well as I might miss a reply here), and I can diff my cppunit src against the downloaded version and see what was changed. Failing that, I'll give you a link to my SVN repo and you can see if that works for you.
_Sigma thanks for the offer but I know was the problem was and I feel so silly now :(
I had a lib built with vs2005 in the path for my project and this is the one which was being linked in which was using a different version of the standard lib.
That'll do 'er! Glad to hear you sorted it out.

This topic is closed to new replies.

Advertisement