RE: building GTK2 from src on win32
| From: | Steph | Date: | Wed, 07 Jan 2004 17:53:03 +0000 |
| Subject: | RE: building GTK2 from src on win32 | ||
| Groups: | php.gtk.dev | ||
| Request: | Send a blank email to php-gtk-dev+get-606@lists.php.net to get a copy of this message | ||
> I thiunk we need to rebuild all the GTK binaries from scratch. PHP5 now
> comes with libxml2 and iconv bundled and with all the symbols exported.
> There is no need to link with these any more.
Good thinking. .oO('how do we build glib at that level?')
OK, I did this with glib-2.3.1:
glib\build\win32\make.msc
# INTL_CFLAGS = -I $(INTL)
# INTL_LIBS = $(INTL)\intl.lib
# LIBICONV_CFLAGS = -I $(LIBICONV)\include
# LIBICONV_LIBS = $(LIBICONV)\lib\iconv.lib
PHP_CFLAGS = -I $(PHP) # this is most likely wrong?
PHP_LIBS = $(PHP)\Release_TS\php5ts.lib
and replaced those macros where appropriate throughout the glib makefiles.
I also had to replace gmacros.h, gconvert.h and gconvert.c in glib\glib dir
with the latest CVS versions.
Relevant MSVC output:
C:\sandbox\glib>nmake -nologo -f makefile.msc sub-one THIS=glib TARGET=all
cl -G5 -GF -MD -W3 -nologo -Ox -Zd -FImsvc_recommended_pragmas.h -I . -I
.. -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=\"GLib\" -DG_ENABLE_DEB
UG -Zm400 -I ..\../php5 -I
..\..\glib\build\win32\dirent -LD -Felibglib-2.0-0.dll garray.obj gasy
ncqueue.obj gbacktrace.obj gcache.obj gcompletion.obj gconvert.obj
gdataset.obj gdate.obj gdir.obj gerror.obj gfileutils.obj ghash.obj
ghook.obj giochannel.obj giowin32.obj glist.obj gmain.obj
gmarkup.obj gmem.obj
gmessages.obj gnode.obj gprimes.obj gqsort.obj gqueue.obj
gpattern.obj gprintf.obj grand.obj grel.obj gscanner.obj gshell.obj
gslist.obj gspawn-win32.obj gstrfuncs.obj gstring.obj gthread.obj
gthreadpool.obj gtimer.obj
gtree.obj gunibreak.obj gunicollate.obj gunidecomp.obj
guniprop.obj gutf8.obj gutils.obj gwin32.obj localcharset.obj
..\../php5\Release_TS\php5ts.lib gnulib\gnulib.lib
..\..\glib\build\win32\dirent\dirent.lib user32.lib advapi32.
lib shell32.lib wsock32.lib /link /machine:ix86 /implib:glib-2.0.lib
/def:glib.def
Creating library glib-2.0.lib and object glib-2.0.exp
gconvert.obj : error LNK2001: unresolved external symbol _libiconv_open
gconvert.obj : error LNK2001: unresolved external symbol _libiconv
gconvert.obj : error LNK2001: unresolved external symbol _libiconv_close
gutils.obj : error LNK2001: unresolved external symbol _dgettext
gutils.obj : error LNK2001: unresolved external symbol
_bind_textdomain_codeset
gutils.obj : error LNK2001: unresolved external symbol _bindtextdomain
libglib-2.0-0.dll : fatal error LNK1120: 6 unresolved externals
I don't know why I'm getting those unresolved external symbols for libiconv
and gettext... shouldn't they be resolved through php5ts.lib? It looks
fairly hopeful apart from that!
The only problems I'm having is with building the tests.
type-test.c(129) : error C2146: syntax error : missing ')' before identifier
'G_GSSIZE_FORMAT'
and (following commenting-out type-test.exe build in glib tests makefile &
adding some commas to g_print()s in testglib.c to kill a similar message)
testglib.c(428) : error C2065: 'G_GSIZE_FORMAT' : undeclared identifier