From: Gregory.A.Book on
I've been using the 2.6.3 library for a while for my program and
decided to try the 2.8.0 library, both in VC++2005. I've been able to
compile and link my program against 2.6.3 with no problems so far.

I was able to compile wxWidgets 2.8.0 and generate the .lib files. When
I build my program against 2.8.0, it compiles with no problem, but it
generates errors during the linking phase.

The errors generated are below. Anyone have any idea whats happening?

Thanks,
Greg

1>Generating Code...
1>Compiling resources...
1>Compiling manifest to resources...
1>Linking...
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _isdigit already defined
in LIBCMTD.lib(_ctype.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _tolower already defined
in LIBCMTD.lib(tolower.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _free already defined in
LIBCMTD.lib(dbgheap.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _toupper already defined
in LIBCMTD.lib(toupper.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _calloc already defined in
LIBCMTD.lib(dbgheap.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strncpy already defined
in LIBCMTD.lib(strncpy.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strchr already defined in
LIBCMTD.lib(strchr.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _malloc already defined in
LIBCMTD.lib(dbgheap.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _sscanf already defined in
LIBCMTD.lib(sscanf.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strncmp already defined
in LIBCMTD.lib(strncmp.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _atoi already defined in
LIBCMTD.lib(atox.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _isalnum already defined
in LIBCMTD.lib(_ctype.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __strnicmp already defined
in LIBCMTD.lib(strnicmp.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _floor already defined in
LIBCMTD.lib(floor_pentium4.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _ceil already defined in
LIBCMTD.lib(ceil_pentium4.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _sprintf already defined
in LIBCMTD.lib(sprintf.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _isalpha already defined
in LIBCMTD.lib(_ctype.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _memmove already defined
in LIBCMTD.lib(memmove.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _isspace already defined
in LIBCMTD.lib(_ctype.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strftime already defined
in LIBCMTD.lib(strftime.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __wassert already defined
in LIBCMTD.lib(wassert.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _wcstombs already defined
in LIBCMTD.lib(wcstombs.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _mbstowcs already defined
in LIBCMTD.lib(mbstowcs.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _wcslen already defined in
LIBCMTD.lib(wcslen.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _realloc already defined
in LIBCMTD.lib(dbgheap.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strtol already defined in
LIBCMTD.lib(strtol.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strtoul already defined
in LIBCMTD.lib(strtol.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __strtoi64 already defined
in LIBCMTD.lib(strtoq.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __strtoui64 already
defined in LIBCMTD.lib(strtoq.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strtod already defined in
LIBCMTD.lib(strtod.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __errno already defined in
LIBCMTD.lib(dosmap.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __vsprintf_p already
defined in LIBCMTD.lib(vsnprnc.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strpbrk already defined
in LIBCMTD.lib(strpbrk.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _exit already defined in
LIBCMTD.lib(crt0dat.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _setlocale already defined
in LIBCMTD.lib(setlocal.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __stricmp already defined
in LIBCMTD.lib(stricmp.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __close already defined in
LIBCMTD.lib(close.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __read already defined in
LIBCMTD.lib(read.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __write already defined in
LIBCMTD.lib(write.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __commit already defined
in LIBCMTD.lib(commit.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __lseeki64 already defined
in LIBCMTD.lib(lseeki64.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __open_osfhandle already
defined in LIBCMTD.lib(osfinfo.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _getenv already defined in
LIBCMTD.lib(getenv.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _abort already defined in
LIBCMTD.lib(abort.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: ___iob_func already
defined in LIBCMTD.lib(_file.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fflush already defined in
LIBCMTD.lib(fflush.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fputc already defined in
LIBCMTD.lib(fputc.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fputs already defined in
LIBCMTD.lib(fputs.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _atol already defined in
LIBCMTD.lib(atox.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fopen already defined in
LIBCMTD.lib(fopen.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fclose already defined in
LIBCMTD.lib(fclose.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fread already defined in
LIBCMTD.lib(fread.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _ferror already defined in
LIBCMTD.lib(feoferr.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fwrite already defined in
LIBCMTD.lib(fwrite.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fseek already defined in
LIBCMTD.lib(fseek.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _ftell already defined in
LIBCMTD.lib(ftell.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __getcwd already defined
in LIBCMTD.lib(getcwd.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __get_osfhandle already
defined in LIBCMTD.lib(osfinfo.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __fileno already defined
in LIBCMTD.lib(fileno.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _feof already defined in
LIBCMTD.lib(feoferr.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fprintf already defined
in LIBCMTD.lib(fprintf.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __CrtSetDbgFlag already
defined in LIBCMTD.lib(dbgheap.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _printf already defined in
LIBCMTD.lib(printf.obj)
1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: __thiscall
type_info::type_info(class type_info const &)"
(??0type_info@@AAE(a)ABV0@@Z) already defined in LIBCMTD.lib(typinfo.obj)
1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info &
__thiscall type_info::operator=(class type_info const &)"
(??4type_info@@AAEAAV0(a)ABV0@@Z) already defined in
LIBCMTD.lib(typinfo.obj)
1>LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of
other libs; use /NODEFAULTLIB:library
1>OptionsDialog.obj : error LNK2019: unresolved external symbol
"public: void __thiscall wxStringData::Free(void)"
(?Free(a)wxStringData@@QAEXXZ) referenced in function "public: void
__thiscall wxStringData::Unlock(void)" (?Unlock(a)wxStringData@@QAEXXZ)
1>SegmentationFrame.obj : error LNK2001: unresolved external symbol
"public: void __thiscall wxStringData::Free(void)"
(?Free(a)wxStringData@@QAEXXZ)

.... and this continues for all objects in my program ...

1>AnonymizeDialog.obj : error LNK2001: unresolved external symbol
"public: void __thiscall wxStringData::Free(void)"
(?Free(a)wxStringData@@QAEXXZ)
1>DicomInfo.obj : error LNK2001: unresolved external symbol "public:
void __thiscall wxStringData::Free(void)" (?Free(a)wxStringData@@QAEXXZ)
1>.\Debug/MIView.exe : fatal error LNK1120: 1 unresolved externals
1>Creating browse information file...
1>Microsoft Browse Information Maintenance Utility Version 8.00.50727
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Build log was saved at "file://c:\projects\MIView\Debug\BuildLog.htm"
1>MIView - 89 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped
==========

From: Kolya Kosenko on
Gregory.A.Book(a)gmail.com wrote:
> I've been using the 2.6.3 library for a while for my program and
> decided to try the 2.8.0 library, both in VC++2005. I've been able to
> compile and link my program against 2.6.3 with no problems so far.
>
> I was able to compile wxWidgets 2.8.0 and generate the .lib files. When
> I build my program against 2.8.0, it compiles with no problem, but it
> generates errors during the linking phase.
>
> The errors generated are below. Anyone have any idea whats happening?
>
> Thanks,
> Greg
See FAQ:

"Visual C++ gives errors about multiply defined symbols, what can I do?"
http://ftp.wxwidgets.org/wx/docs/html/faqmsw.htm#crtmismatch

---------------------------------------------------------------------
To unsubscribe, e-mail: wx-users-unsubscribe(a)lists.wxwidgets.org
For additional commands, e-mail: wx-users-help(a)lists.wxwidgets.org

From: Gregory.A.Book on
I figured it out shortly after I posted the message. The answer does
lie with the link below. Specifically, I needed to change the Runtime
Library from "Multithreaded debug DLL /MDd" to "Multithreaded debug
/MTd" and change "Multithreaded DLL /MD" to "Multithreaded /MT" when
building wxWidgets.

-Greg


Kolya Kosenko wrote:
> Gregory.A.Book(a)gmail.com wrote:
> > I've been using the 2.6.3 library for a while for my program and
> > decided to try the 2.8.0 library, both in VC++2005. I've been able to
> > compile and link my program against 2.6.3 with no problems so far.
> >
> > I was able to compile wxWidgets 2.8.0 and generate the .lib files. When
> > I build my program against 2.8.0, it compiles with no problem, but it
> > generates errors during the linking phase.
> >
> > The errors generated are below. Anyone have any idea whats happening?
> >
> > Thanks,
> > Greg
> See FAQ:
>
> "Visual C++ gives errors about multiply defined symbols, what can I do?"
> http://ftp.wxwidgets.org/wx/docs/html/faqmsw.htm#crtmismatch
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wx-users-unsubscribe(a)lists.wxwidgets.org
> For additional commands, e-mail: wx-users-help(a)lists.wxwidgets.org