Subject: Compiling dia for win32 using MSVC6 (on Win2k)
Date: Mon, 31 Mar 2003 17:10:04 +1000 (EST)
Hi,
This belongs in the thread `dia 0.91 for win32 cant read settings'.
Unfortunately I've just joined the list, so I can't reply to one of
those messges.
This is probably of interest to Ben Hetland, who was having trouble
compiling dia for win32 using MSVC6 (on Win2k), and to Steffen Macke,
whose instructions I used (with some modifications) to do this.
-----------
The following are the steps I took to compile dia for windows using
Visual Studio 6 (SP5) on a Windows 2000 machine:
Instructions used successfully on Mon Mar 31 16:21:41 EST 2003 with
the current CVS sources and packages on the `dia win32 sources' page.
o Set the environmental variables as per Steffen's instructions.
Mine are:
MSVC="C:\Program Files\Microsoft Visual Studio\VC98"
TOP="H:\ws-dia"
o Grab the cvs sources. (Do `cvs co dia' in %TOP% directory.)
( CVSROOT=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome" )
o Download all the required developer packages from:
http://dia-installer.sourceforge.net/sources.html
o Unzip all the developer packages to the %TOP% directory.
(Make sure `dia_extra_src_msvc_0.91-pre2-1.zip' is unzipped last.)
o At the prompt in Windows, type the following to set the other
required enivronment variables:
set LIB=%LIB%;%TOP%\lib
set INCLUDE=%INCLUDE%;%TOP%\include
set PATH=%PATH%;%TOP%\bin
o There is a problem with `configure_dia_msvc.bat';
The line `move glib-2.2.1 glib' ends up moving the entire
glib-2.2.1 directory into the glib directory.
What should really happen is the two files in the `glib'
tree (`make.msc' and `modules.def') should be copied over
the ones in the `glib-2.2.1' tree and that tree then
renamed to `glib'.
To fix this I replace the line:
move glib-2.2.1 glib
with the lines:
move /Y glib\build\win32\* glib-2.2.1\build\win32
rmdir /S /Q glib
rename glib-2.2.1 glib
o Run modified `configure_dia_msvc.bat' in %TOP%
o Run the compilations commands under ``6. Compilation'' in
Steffen's instructions.
o Finally, run `nmake makefile.msc' in the %TOP%\dia directory.
It bombs out because it can't find `libiconv.dll' and
`libcharset.dll' in the %TOP%\bin directory.
To fix this I copy the `iconv.dll' and `localcharset.dll' files
from the %TOP%\libiconv-1.8-w32-1.bin to the %TOP%\bin directory
and rename them to `libiconv.dll' and `libcharset.dll'
respectively.
I then run `nmake makefile.msc' in the %TOP%\dia directory and it
runs fine.
o We should now be able to run dia from %TOP%\dia\build\win32\bin,
unfortunately there are still some issues. When we execute it we
find the following DLLs are missing:
(On the right is the place I copied each from to fix the problem.)
libintl.dll %TOP%/bin
libintl-1.dll the binary distribution of dia
iconv.dll %TOP%/libiconv-1.8-w32-1.bin
o This done, dia runs but the console shows the following error:
(dia.exe:1916): Gtk-CRITICAL **: file gtkmenuitem.c: line 403
(gtk_menu_item_activate): assertion `GTK_IS_MENU_ITEM (menu_item)'
failed
Then, if you click `File -> Sheets and Objects...' it tries to
dereference a NULL pointer and crashes. The solution to this is
to copy the `shapes' and `sheets' directories from the win32 binary
distribution of dia to the %TOP%\dia\build\win32 directory.
o It works!
I'm not sure my little hacks are the correct solutions to some of these
problems. Steffan, I'd be interested for you to comment on this.
Cheers,
Michael