Author Topic: Linking Error  (Read 5305 times)

Offline aryajur

  • Single posting newcomer
  • *
  • Posts: 4
Linking Error
« on: March 24, 2011, 04:30:01 am »
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:

Code
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?

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: Linking Error
« Reply #1 on: March 24, 2011, 06:21:36 am »
Do a full re-build.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline aryajur

  • Single posting newcomer
  • *
  • Posts: 4
Re: Linking Error
« Reply #2 on: March 24, 2011, 07:36:36 am »
Thanks for the reply. A full rebuild of wxWidgets?

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: Linking Error
« Reply #3 on: March 24, 2011, 10:29:46 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: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline aryajur

  • Single posting newcomer
  • *
  • Posts: 4
Re: Linking Error
« Reply #4 on: March 24, 2011, 07:48:52 pm »
I did that already. I did a clean then did a rebuild but its the same thing.

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7591
    • My Best Post
Re: Linking Error
« Reply #5 on: March 24, 2011, 09:02:48 pm »
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.
« Last Edit: March 24, 2011, 10:23:01 pm by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline aryajur

  • Single posting newcomer
  • *
  • Posts: 4
Re: Linking Error
« Reply #6 on: March 24, 2011, 10:05:36 pm »
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.