cannot find ... libwxmsw31ud_core.a even though the file is linked

Do you have a question about makefiles, a compiler or IDE you are using and need to know how to set it up for wxWidgets or why it doesn't compile but other IDE's do ? Post your questions here.
Post Reply
Ken_SF
Earned a small fee
Earned a small fee
Posts: 16
Joined: Tue Jun 11, 2019 9:35 pm

cannot find ... libwxmsw31ud_core.a even though the file is linked

Post by Ken_SF » Mon Jun 17, 2019 8:33 pm

Hi,

I am a newbe using Windows 7 Pro, Code Blocks 17.12 and WxWidgets 3.1.2. I am using the GCC 32/64 bit compiler.

I have made great progress since I was recently able to get my first wxwidget projects to compile. I had good success writing some simple wxsmith projects and wanted to start playing with the wxwidgets sample projects. I am having difficulty compiling the Widgets sample project from Code Blocks in spite of the fact that (I believe, perhaps incorrectly) that my linker and search directories are setup correctly.

I installed WxWidgets such that I am Monolithic=no and Shared=0. I set Unicode = yes.

I realize the samples can be compiled from the cmd prompt, but prefer to compile from code blocks as that is the environment I expect to use when writing my own programs.

My build log is shown below my signature line. If I understand it correctly, the compiler is complaining it can't find some files that I believe are already linked in directories that are marked for searching.

Using Settings --> Compiler --> Linker Settings I see these files listed:
C:\TDM-GCC-64\x86_64-w64-mingw32\lib\libuxtheme.a
C:\TDM-GCC-64\x86_64-w64-mingw32\lib\liboleacc.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxjpegd.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxbase31u.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxjpegd.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxtiffd.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxmsw31ud_core.a

Using Settings --> Compiler --> Search Directories I see these directories:
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono
C:\wxWidgets-3.1.2\include
C:\wxWidgets-3.1.2\src\jpeg
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\mswud

I don't recall why I have the \..\src\jpeg directory in the search directories listing, but promise it made sense when I added it (probably following a help screen I found using google search). I don't know if the two references to gcc_lib_nodll_nomono are needed, but presume I added the 2nd search reference for some reason. Because I don't fully understand all of this I am doing a lot by trial and error; many errors.

It doesn't make sense to me that the build log (below) reports it can't find libwxmsw31ud_core.a when that file is specifically linked (as shown above).

Please let me know if you feel I have missed some key documentation (and I will read it).

I have experience documenting software for new users and am willing to write up my findings once I feel I have my sea legs. Please let me know if that is something that might help other new users; I don't need to reinvent the wheel, but would not mind contributing back to the community.

Thanks in advance.

Ken

Build started on: 17-06-2019 at 12:53.54
Build ended on: 17-06-2019 at 12:54.08
-------------- Build: Debug Win32 in widgets (compiler: GNU GCC Compiler)---------------
x86_64-w64-mingw32-g++.exe -L.\..\..\lib\vc_lib -o vc_mswud\widgets.exe vc_mswud\widgets\widgets\activityindicator.o vc_mswud\widgets\widgets\bmpcombobox.o vc_mswud\widgets\widgets\button.o vc_mswud\widgets\widgets\checkbox.o vc_mswud\widgets\widgets\choice.o vc_mswud\widgets\widgets\clrpicker.o vc_mswud\widgets\widgets\combobox.o vc_mswud\widgets\widgets\datepick.o vc_mswud\widgets\widgets\dirctrl.o vc_mswud\widgets\widgets\dirpicker.o vc_mswud\widgets\widgets\editlbox.o vc_mswud\widgets\widgets\filectrl.o vc_mswud\widgets\widgets\filepicker.o vc_mswud\widgets\widgets\fontpicker.o vc_mswud\widgets\widgets\gauge.o vc_mswud\widgets\widgets\headerctrl.o vc_mswud\widgets\widgets\hyperlnk.o vc_mswud\widgets\widgets\itemcontainer.o vc_mswud\widgets\widgets\listbox.o vc_mswud\widgets\widgets\native.o vc_mswud\widgets\widgets\notebook.o vc_mswud\widgets\widgets\odcombobox.o vc_mswud\widgets\widgets\radiobox.o vc_mswud\widgets\widgets\searchctrl.o vc_mswud\widgets\widgets\slider.o vc_mswud\widgets\widgets\spinbtn.o vc_mswud\widgets\widgets\statbmp.o vc_mswud\widgets\widgets\static.o vc_mswud\widgets\widgets\textctrl.o vc_mswud\widgets\widgets\timepick.o vc_mswud\widgets\widgets\toggle.o vc_mswud\widgets\widgets\widgets.o vc_mswud\widgets\sample.res -lwxmsw31ud_core -lwxbase31ud -lwxtiffd -lwxjpegd -lwxpngd -lwxzlibd -lwxregexud -lwxexpatd -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet C:\TDM-GCC-64\x86_64-w64-mingw32\lib\libuxtheme.a C:\TDM-GCC-64\x86_64-w64-mingw32\lib\liboleacc.a C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxjpegd.a C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxbase31u.a C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxjpegd.a C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxtiffd.a C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxmsw31ud_core.a -mwindows
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lwxmsw31ud_core
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lwxbase31ud
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lwxtiffd
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lwxjpegd
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lwxpngd
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lwxzlibd
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lwxregexud
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lwxexpatd
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 13 second(s))
9 error(s), 0 warning(s) (0 minute(s), 13 second(s))

User avatar
doublemax
Moderator
Moderator
Posts: 14188
Joined: Fri Apr 21, 2006 8:03 pm
Location: $FCE2

Re: cannot find ... libwxmsw31ud_core.a even though the file is linked

Post by doublemax » Tue Jun 18, 2019 5:05 am

As i don't use CB, take everything i say with a grain of salt...

Code: Select all

C:\TDM-GCC-64\x86_64-w64-mingw32\lib\libuxtheme.a
C:\TDM-GCC-64\x86_64-w64-mingw32\lib\liboleacc.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxjpegd.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxbase31u.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxjpegd.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxtiffd.a
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\libwxmsw31ud_core.a
Did you list all files with absolute paths? You shoudln't do that. Use just the library names and set the library search paths separately.

Also, you're mixing files from different configurations here. Eg. the "d" in "libwxtiffd.a" stands for "debug" configuration. The "u" in libwxbase31u.a stands for "unicode". The "ud" in libwxmsw31ud_core.a stands for both "debug" and "unicode".

Libs like libwxjpeg and libwxtiff have no separate "unicode" version.

So, if you're building a debug version, the libwxbase31u.a is wrong here, it should be libwxbase31ud.a

Code: Select all

Using Settings --> Compiler --> Search Directories I see these directories:
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono
C:\wxWidgets-3.1.2\include
C:\wxWidgets-3.1.2\src\jpeg
C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\mswud
There should be exactly two wxWidgets related entries here.

Code: Select all

C:\wxWidgets-3.1.2\lib\gcc_lib_nodll_nomono\mswud
C:\wxWidgets-3.1.2\include
And in this order. The first one is where "setup.h" is included from. This can be different for each configuration, that's why it must be included first.

Also, check the library paths and make sure there are no old (wrong) files from previous experiments.
Use the source, Luke!

Ken_SF
Earned a small fee
Earned a small fee
Posts: 16
Joined: Tue Jun 11, 2019 9:35 pm

Re: cannot find ... libwxmsw31ud_core.a even though the file is linked

Post by Ken_SF » Tue Jun 18, 2019 4:09 pm

This is a terrific reply.

Thank you so much for helping on this post.

I will study this information carefully and post my results so others might benefit if they happen to go down the same path.

Ken

Post Reply