Привет всем!
Хочу обернуть библиотеку, юзающую MFC, в статическую lib библиотеку
Для примера получилось следующее:
Библиотечная часть
h:
#ifndef _TESTCLASS_HEADER_
#define _TESTCLASS_HEADER_
class CTestClass{
public:
void Foo();
};
#endif //_TESTCLASS_HEADER_
cpp:
#include ".\testclass.h"
#include <atlstr.h>
void CTestClass::Foo(){
CString strMFCString("CTestClass::TestFunction2");
}
Клиентская часть
#include <tchar.h>
#include "TestClass.h"
int _tmain(int argc, _TCHAR* argv[])
{
CTestClass f;
f.Foo();
return 0;
}
в итоге получаю конфликт имен
Linking...
LIBCMTD.lib(dosmap.obj) : error LNK2005: __dosmaperr already defined in LIBCD.lib(dosmap.obj)
LIBCMTD.lib(_file.obj) : error LNK2005: ___iob_func already defined in LIBCD.lib(_file.obj)
LIBCMTD.lib(_file.obj) : error LNK2005: ___initstdio already defined in LIBCD.lib(_file.obj)
LIBCMTD.lib(_file.obj) : error LNK2005: ___endstdio already defined in LIBCD.lib(_file.obj)
LIBCMTD.lib(_file.obj) : error LNK2005: __cflush already defined in LIBCD.lib(_file.obj)
LIBCMTD.lib(_file.obj) : error LNK2005: __iob already defined in LIBCD.lib(_file.obj)
LIBCMTD.lib(mbctype.obj) : error LNK2005: __setmbcp already defined in LIBCD.lib(mbctype.obj)
LIBCMTD.lib(mbctype.obj) : error LNK2005: __getmbcp already defined in LIBCD.lib(mbctype.obj)
LIBCMTD.lib(mbctype.obj) : error LNK2005: ___initmbctable already defined in LIBCD.lib(mbctype.obj)
LIBCMTD.lib(isctype.obj) : error LNK2005: __chvalidator already defined in LIBCD.lib(isctype.obj)
LIBCMTD.lib(isctype.obj) : error LNK2005: __isctype already defined in LIBCD.lib(isctype.obj)
LINK : warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other libs; use /NODEFAULTLIB:library
Debug/TestLibClient2.exe : fatal error LNK1169: one or more multiply defined symbols found
Подскажите, знающие люди, как обойти эту проблему. В чем дело? Что я делаю не так?