Re: $(BASEEXT).dll Can't be found[was:[Help]Can't find Gtk2.dll]



I've solved the promblem, the real evil was Glib, which export $(BASEEXT).dll instead of Glib.dll. Thus Gtk2 link to $(BASEEXT).dll.
When I compile Glib-perl, it complained that too long command line when generating Glib.def. I think this may be the source of the problem.

On 4/27/05, Shixin Zeng <shixinzeng gmail com > wrote:


On 4/27/05, muppet <scott asofyet org> wrote:

On Apr 27, 2005, at 7:00 AM, Shixin Zeng wrote:

> I think I find the problem, but I still can't solve it.
>  The problem is: gtk2.dll add dependence on $(BASEEXT).DLL, obviously,
> $(BASEEXT) should be substitue by the its real value. but, by some
> unkown mistakes, it wasn't substituted. So $(BASEEXT).DLL can't be
> found, and gtk2.dll can't be loaded either.

eh, according to the generated Makefile i have on my linux system here:

   # FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
   # BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg
Oracle)
   # PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
   # DLBASE  = Basename part of dynamic library. May be just equal
BASEEXT.
   FULLEXT = Gtk2
   BASEEXT = Gtk2
   PARENT_NAME =
   DLBASE = $(BASEEXT)

do these lines appear in the Makefile that Makefile.PL creates for you?

Yes, these lines exist, and exactly the same as yours.

note that  $(BASEEXT).dll == $(BASEEXT).$(DLEXT) == Gtk2.dll  (on win32)

I know this.

by the way, this is the shared object that contains the implementation
of the bindings, installed in perl's library path, not to be confused
with the dll that the extension wraps.

does 'make test' pass?  when you're trying to run gtk-demo, have you
already done a 'make install'?  does gtk-demo work if you invoke it
like this?

 Of course I did 'make install', but gtk-demo can't run. and 'make test' faild, for "'$(BASEEXT).DLL'  can't be found". With 'dependents'(a dll depedence walker from MS VC), I found that Gtk2.dll depends on '$(BASEEXT).DLL', instead of 'Gtk2.dll'. So, I think this is the root of the problem. But I don't know how to fix it.

    cd gtk-demo
    perl -I../blib/lib -I../blib/arch ./main.pl

(mangle the paths as necessary on win32 if the /s don't work)

--
"Quit hittin' yourself!  Quit hittin' yourself!"
    -- Elysse, playing with a newborn baby.




--
Best regards

Shixin Zeng



--
Best regards

Shixin Zeng

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]