Tim Heckman wrote: > NotFound wrote: >> On Tue, Sep 9, 2008 at 5:23 AM, via RT Tim Heckman >> <[EMAIL PROTECTED]> wrote: >> >>> # New Ticket Created by "Tim Heckman" >>> # Please include the string: [perl #58704] >>> # in the subject line of all future correspondence about this issue. >>> # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58704 > >>> link -nologo -nodefaultlib -debug -machine:x86 -debug >>> t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe >>> -Lblib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib >>> oldnames.lib >>> >>> But, if I run this command using the documented linker option of >>> /LIBPATH it *still* fails. >>> >>> link -nologo -nodefaultlib -debug -machine:x86 -debug >>> t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe >>> /LIBPATH:blib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib >>> oldnames.lib >>> >> What are the error messages in this case? >> > > It seems to ignore /LIBPATH > > C:\work\parrot>link -nologo -nodefaultlib -debug -machine:x86 -debug > t/src/c > ompiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe > /LIBPATH:blib\lib > libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib > compiler_2.obj : error LNK2001: unresolved external symbol _PMCNULL > t\src\compiler_2.exe : fatal error LNK1120: 1 unresolved externals > > C:\work\parrot>
/LIBPATH adds a path to the library search path, which isn't used here for libparrot.lib because the path to the library is already specified, i.e. your F<C:\work\parrot\libparrot.lib>. Note that there are two libparrot.lib files: $PARROT_HOME/libparrot.lib, the import library for the dynamic libparrot.dll, and $PARROT_HOME/blib/lib/libparrot.lib, the static Parrot library. Try deleting your $PARROT_HOME/libparrot.lib and you should see LIBPATH working. Embedding Parrot on Windows using the DLL is currently broken because PMCNULL is not properly exported. That's why you receive the latter unresolved symbol error. The static library (in blib/lib) doesn't suffer from this. Ron