cannot find -lwxmsw32u_qa

General questions regarding the usage of CodeLite
User avatar
ColleenKobe
CodeLite Expert
Posts: 130
Joined: Wed Mar 30, 2016 4:31 pm
Genuine User: Yes
IDE Question: C++
Contact:

cannot find -lwxmsw32u_qa

Post by ColleenKobe »

I've just upgraded my programming environment to:

Windows 10 (actually unchanged)
MinGW
wxWidgets version 3.2.2.1
CodeLite version 17.3.0

I've compiled wxWidgets with DOS commands (versus SYS2), and compiled my workspace. The two C projects and one C++ project all compile without errors. But I'm getting one final error that's
preventing the generation of an EXE file, and that is this:

Code: Select all

c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw32u_qa

I don't know what that file is, or what it does. How do I find that file and incorporate it into my build? Or delete the line requesting it? Or fool the linker into thinking it found what it's looking for?

Thanks!

Colleen

DavidGH
CodeLite Plugin
Posts: 819
Joined: Wed Sep 03, 2008 7:26 pm
Contact:

Re: cannot find -lwxmsw32u_qa

Post by DavidGH »

Did you try putting 'wxmsw32u_qa' into ${YourFavouriteSearchEngine}? Why not give it a go?

Oh, and you might find it helpful to read this wxForum thread too ;)

User avatar
ColleenKobe
CodeLite Expert
Posts: 130
Joined: Wed Mar 30, 2016 4:31 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: cannot find -lwxmsw32u_qa

Post by ColleenKobe »

DavidGH,

Thanks for replying.

Yes, of course I did a search like that. The very first hit (https://forums.wxwidgets.org/viewtopic.php?t=49891) looked quite promising. But he lost me at

As a workaround I copied and renamed the respective files from the binaries collection which solved the problem.

What respective files? What binaries collection? Renamed them as what? Are you doing this in a build, in CodeLite, where? I don't know what he's talking about.

The second hit (https://forums.wxwidgets.org/viewtopic.php?t=48867) had some discussion, but ultimately he said,

For the time being I found a workaround by entering all libraries manually to the option that would be normally added by default.

Sounds promising, but I don't know what he's talking about either.

In another hit (https://docs.wxwidgets.org/3.2/plat_msw_binaries.html), the string wxmsw32u_qa doesn't even appear on the page.

In another hit (), he says,

5. On a whim, I went to the project output folder (bin) and tried running the executable directly. I got more useful information...it wants all the libraries to have the name ending in "...32ud". Not to mention, NONE of said library files are actually present in the project output (bin) folder. I manually copied over the wxWidget DLLs, ran the executable again, and it WORKS! I see a basic Windows application! Amazing!

Would be great, but a search on my computer does not show the any files with the name "wxmsw32u_qa." at all.

In another hit (), the responder says, "wxQA library (i.e., wxDebugReport) is available only for MSVC-built wxWidgets (at least on Windows), since MSVC is the only Windows compiler providing the support for this feature (i.e., Win32 structured exception handling)." Which seems to say, "wxmsw32u_qa is for the wxQA library, but you can't have the wxQA library unless you're running wxWidgets in MSVC," But I don't want or need the wxQA library.

And so on.

Finally I figured if I asked a question, I might get an answer quicker.

Colleen

DavidGH
CodeLite Plugin
Posts: 819
Joined: Wed Sep 03, 2008 7:26 pm
Contact:

Re: cannot find -lwxmsw32u_qa

Post by DavidGH »

I don't use MinGW (or indeed Windows) so the following may not apply to you. Still:

In your Linker settings you presumably call wx-config.exe. In Linux you might do
wx-config --libs
or --libs std
If you are doing the same thing, and wx-config.exe contains wxmsw32u_qa, that would explain the problem.
Again, if it were Linux, you could instead do
wx-config ${foo},${bar}......
where foo, bar etc are any wx libs that you need.

Alternatively, again in Linux, you could have passed the wx-config output through grep with its parameters set to remove any word containing "qa".

IDK if any of that will apply to MSW though.

ultrajunkie
CodeLite Enthusiast
Posts: 13
Joined: Mon Mar 20, 2017 11:05 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: cannot find -lwxmsw32u_qa

Post by ultrajunkie »

This is a classic one... I ran into it several times :oops:

Since the wx-config version I tested with the necessary corrections didn't find its way into the package yet, there are 2 options:

  1. When building the wx libs, change the respective flag in the config.gcc (in build\msw) to 1:

Code: Select all

# Build quality assurance classes library (USE_GUI must be 1)? [0,1]
USE_QA ?= 1

This will also build the qa lib even though it is not required.

  1. instead of using "libs all" in the linker parameters, use this: -mwindows;$(shell wx-config --libs aui,html,core,net,xrc,xml,base);

Hope that solves your problem

Post Reply