News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

Linking Error

Started by aryajur, March 24, 2011, 04:30:01 AM

Previous topic - Next topic

aryajur

Hello,
         I am using Code Blocks with wxWidgets. I had everything setup and working up till yesterday with wxWidgets-2.8 at path C:\SourceCode\Libraries\wxWidgets2.8. But for another project I had to download wxWidgets 2.9.1 compile it and use it with that project. That resides at c:\wxWidgets-2.9.1. During that process I had changed the environment variable WXWIN to point to c:\wxWidgets-2.9.1.
        After all that was done I renames the c:\wxWidgets-2.9.1 to something else and changed the WXWIN environment variable back to C:\SourceCode\Libraries\wxWidgets2.8. But now when I compile and link the same project that was working fine before I get these linker errors:


C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTimeHolidaysModule::GetClassInfo() const'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|278|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::Tm::Tm()'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|639|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::Tm::Tm()'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|639|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::Tm::Tm(tm const&, wxDateTime::TimeZone const&)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|648|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::Tm::Tm(tm const&, wxDateTime::TimeZone const&)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|648|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::Tm::ComputeWeekDay()'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|671|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::Tm::AddMonths(int)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|679|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::GetCentury(int)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|814|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::ConvertYearToBC(int)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|820|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::SetCountry(wxDateTime::Country)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|1108|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::Set(double)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|1508|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::SetMillisecond(unsigned short)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|1826|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::GetJulianDayNumber() const'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|2227|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::GetRataDie() const'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|2232|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `operator*(int, wxDateSpan const&)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4256|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `operator*(int, wxTimeSpan const&)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4266|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTimeArray::Index(wxDateTime const&, bool) const'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4454|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTimeHolidayAuthority::IsHoliday(wxDateTime const&)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4473|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTime::IsWorkDay(wxDateTime::Country) const'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4247|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTimeHolidayAuthority::~wxDateTimeHolidayAuthority()'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4521|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxDateTimeHolidayAuthority::~wxDateTimeHolidayAuthority()'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4521|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxNextMonth(wxDateTime::Month&)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4582|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxPrevMonth(wxDateTime::Month&)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4590|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxNextWDay(wxDateTime::WeekDay&)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4598|first defined here|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxbase28u.a(baselib_datetime.o):datetime.cpp|| multiple definition of `wxPrevWDay(wxDateTime::WeekDay&)'|
C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_lib\libwxmsw28ud.a(monolib_datetime.o):C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\common\datetime.cpp|4606|first defined here|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings ===|


What is this BuildAgent directory I see nothing like it? How do I correct these?

MortenMacFly

Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: [url="https://www.codeblocks.org/docs/main_codeblocks_en.html"]https://www.codeblocks.org/docs/main_codeblocks_en.html[/url]
C::B FAQ: [url="https://wiki.codeblocks.org/index.php?title=FAQ"]https://wiki.codeblocks.org/index.php?title=FAQ[/url]

aryajur

Thanks for the reply. A full rebuild of wxWidgets?

MortenMacFly

Quote from: aryajur on March 24, 2011, 07:36:36 AM
Thanks for the reply. A full rebuild of wxWidgets?
No, of you application. If you change the underlying library you always should do a full re-build, meaning all your object / PCH files should be cleared first.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: [url="https://www.codeblocks.org/docs/main_codeblocks_en.html"]https://www.codeblocks.org/docs/main_codeblocks_en.html[/url]
C::B FAQ: [url="https://wiki.codeblocks.org/index.php?title=FAQ"]https://wiki.codeblocks.org/index.php?title=FAQ[/url]

aryajur

I did that already. I did a clean then did a rebuild but its the same thing.

stahta01

#5
Remove the extra library either libwxbase28u.a or libwxmsw28ud.a you should never use both in the same target.

Edit: I was talking about both mixing 28u and 28ud and mixing wxbase and wxmsw; both are usually not correct.
Note: mixing wxbase with wxmsw core(or other multiple lib suffix) is OK.

Tim S.
C Programmer working to learn more about C++.
On Windows 10 64 bit and Windows 11 64 bit.
--
When in doubt, read the CB WiKi FAQ. [url="http://wiki.codeblocks.org"]http://wiki.codeblocks.org[/url]

aryajur

Thanks stahta01, that solved it. I realize that the d suffix libraries are the debug ones and without them are release ones I cannot have both.

Thanks.