News:

When registered with our forums, feel free to send a "here I am" post here to differ human beings from SPAM bots.

Main Menu

why application can not find wxmsw28u_gcc_cb.dll?

Started by surefire, April 01, 2007, 03:16:59 AM

Previous topic - Next topic

surefire

I have compiled wxWidgets2.8.3 successfully and also built one wxWidgets program successfully. but when I execute it, the application failded to start because wxmsw28u_gcc_cb.dll cann't be fount. So I copy this dll into current directory of application, then anything is ok, why?

Project Settings:
  wxWidgets version:2.8.3
  GUI builder:wxFormBuilder
  Application Type:Frame based
  Using wxWidgets dll: checked
  wxWidgets is built as a monolithic library:checked
  Enable Unicode:checked
other settings are as default.

any idea?

thanks
Alex

Pecan

a dll has to be either in the directory of the executable module that uses it, or on the system path.

Type "path" in a dos box (console) to see the directories that are searched for dll's.

surefire

I compiled wxWidgets as static lib again. this time wxWidgets application run normally.

my question is:Whether I should distribute the wxmsw28u_gcc_cb.dll and my application together if I checked Using wxWidgets Dll ?


surefire

And the application is so large that almost up to 5M though I don't add any other codes in my project.  :(

Biplab

I believe your application is linked against wxmsw28u_gcc_custom.dll which is normally created when you compile wx as dll.

In both the cases you've to distribute 5+MB. So now it's upto you. :)
Be a part of the solution, not a part of the problem.

surefire

Code::Blocks how to decide it should link to wxmsw28u_gcc_cb.dll other than  wxmsw28u_gcc_custom.dll?

devilsclaw

you have to compile that dll as a lib instead.. and tell the linker to link against it. then its code will be inside or your program.

Biplab

First, I gave a confusing answer last time. Sorry for that.

Quote from: surefire on April 01, 2007, 06:42:39 AM
Code::Blocks how to decide it should link to wxmsw28u_gcc_cb.dll other than  wxmsw28u_gcc_custom.dll?

You need to link your app against proper import library. In this case, I believe you are linking against a different import library.

When you create a dll an import library is created. If you link your app against that import library. The app will ask for that specific dll. If you supply a different dll to it, it may refuse. This is what is happening with you.
Be a part of the solution, not a part of the problem.

surefire

thanks to all you , my question has been solved.

Master Lexx

I am new to this. So how can I compile wxwidgets as lib so I don't need this 50 MB wxmsw28ud_gcc_custom.dll ?

raph

Quote from: Master Lexx on May 27, 2007, 05:45:53 PM
I am new to this. So how can I compile wxwidgets as lib so I don't need this 50 MB wxmsw28ud_gcc_custom.dll ?
Compile wxWidgets as a non-shared library:
mingw32-make -f makefile.gcc SHARED=0
Also notice that you compiled it in debug mode:
Quote from: Master Lexx on May 27, 2007, 05:45:53 PM
wxmsw28ud_gcc_custom.dll
That's why it is so big (mine is 10 MB).
Either strip it ("strip wxmsw28ud_gcc_custom.dll") or compile it in release mode ("mingw32-make -f makefile.gcc BUILD=release").

raph

Master Lexx

#11
Thanks. I did used: "mingw32-make -f makefile.gcc  MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=release" (/debug)

And now I don't need this big file anymore. One day passed, now I know how to begin with codeblocks and wxwidgets.

:D

Arun BR

#12
if you are installed wxwidget 3.1.X ( or any other except 2.8.X) you may get this error.
you should open wxwidget folder-->wxmsw28u_gcc_cb.dll-->lib folder-->gcc_dll.drop down to end of file list, you can see the installed wxmsw at there. rename it as wxmsw310u_gcc_cb.dll .Copy path of current shown directory.
first go to Control panel-->Search "System" on search box-->select system-->environmental setting-->select path from drop down list at the bottom and add your copied path at the end.click ok.now go to your project and try the task where you got error.Now the error will be wxmsw310u.... missing.Then just rename the .dll file which you are renamed first to its old name.Then try to run again the application of  project file .Success...!