msys, wx 2.8.0, gcc, linking phase problem

Daniel C. Bastos dbast0s at yahoo.com.br
Fri Feb 9 17:21:02 PST 2007


In article <fLmdnX1IKf8dllDYnZ2dnUVZ_ofinZ2d at insightbb.com>,
John Ratliff wrote:

> Daniel C. Bastos wrote:

[...]

> > Using the microsoft free compiler wouldn't be a bad idea at all, since
> > it seems to generate smaller executable sizes for GUI applications --- I
> > read that somewhere on the web. Is it true?
> 
> Microsoft's VC++ compiler has typically produced smaller executables 
> than mingw-gcc, so if you're fond of VC++, I'd say use it.

I'm not too fond of VC++. I'd like to use the GNU emacs and just call
the cl.exe compiler; but right now, when I call it under msys, I get a
message box with title ``cl.exe - Unable to Locate Component'' and
content ``This application has failed to start because mspdb80.dll was
not found. Re-installing the application may fix this problem.'' and
finally an ``OK'' button to be pressed.

When I run cl.exe through the cmd.exe shell, I also get the same message
box. So the problem is not particular to msys. 

The file mspdb80.dll exists in these directories:

C:\sdk\Bin\win64
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
c:\sdk\bin\win64\x86\AMD64

and in no other.

Do you know how can I instruct cl.exe to find its DLLs?

> I'm pretty sure the free VC++ comes with nmake, so you can always write 
> a Makefile for that. You could probably even use mingw-make with the 
> Microsoft compiler if you like.

I'd like to do this; but under msys, because I also use some /bin/sh
scripts to help out in automating some tasks for the compilation phase;
that's all I use: make, sh. This way, my packages are portable
throughout UNIX systems.

> As for msys, I've never compiled the 2.8 version as I haven't tried it 
> yet, but when I compile in msys (e.g. version 2.6.3), I do the following:
> 
> /c/wxWidgets-2.6.3/configure --disable-debug --disable-compat24 
> --disable-shared --disable-unicode --enable-optimise 
> --prefix=/usr/local/wx/2.6.3/sra &> configure.log
> make && make install
> 
> What did you use for your configure line?

I did

cd builddebug
../configure --enable-debug --enable-debug_gdb --with-msw

I'm going to try your options. I appreciate your help.

%mkdir ratliff
%cd ratliff
%../configure --disable-debug --disable-compat24 --disable-shared --disable-uni
code --enable-optimise --prefix=/usr/local/wx/2.8.0 &> configure.log

Now it worked. 

 ------------------------------------------------------

 The installation of wxWidgets is finished.  On certain
 platforms (e.g. Linux) you'll now have to run ldconfig
 if you installed a shared library and also modify the
 LD_LIBRARY_PATH (or equivalent) environment variable.
 
 wxWidgets comes with no guarantees and doesn't claim
 to be suitable for any purpose.
 
 Read the wxWidgets Licence on licencing conditions.
 
 ------------------------------------------------------

Previously, the problem seemed to be the generation of a custom dll for
gcc; now that I said ``--disable-shared'' to try your options, it
worked; so the fact that now worked with --disable-shared says that
there could be something not portable enough in the generation of the
shared library --- at least for gcc, as it seems to be the case.

Since my errors are undefined references, it could be as simple as the
forgetting of some object files in the dll generation phase. I don't
know any easy way to spot where exactly the problem is, though. But I
can be used as an operator to track the problem; just let me know,
whoever would like to investigate.






More information about the wx-users mailing list