[p4perl] Fwd: 8 hrs invested, 1 unresolved external symbol to go...

Dan Lindy dan.lindy at gmail.com
Tue Jul 24 09:16:03 PDT 2007

I found this:


LNK2001s/LNK2019s are usually a result of mixing debug libs with release
libs (or libs compiled with another version of Visual Studio). It can also
be caused by static libraries not using the same runtime library (project
properties -> c/c++ -> code generation -> runtime library -> should be /MDd
for debug and /MD for release).

Seems it may not be possible to use VS 2005 unless Perforce provide a
compatible set of libs.

---------- Forwarded message ----------
From: Dan Lindy <dan.lindy at gmail.com>
Date: Jul 24, 2007 12:03 PM
Subject: Re: [p4perl] 8 hrs invested, 1 unresolved external symbol to go...
To: Tony Smith <tony at smee.org>
Cc: p4perl at perforce.com

I believe my environment is set correctly. I had to add the M$ Platform SDK
in order to resolve some references (e.g. windows.h). Below is the modified
script I used to set up the environment prior to running Makefile.pl and

@SET VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8
@SET VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8\VC
@SET FrameworkDir=C:\WINNT\Microsoft.NET\Framework
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0
@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR

@echo Setting environment for using Microsoft Visual Studio 2005 x86 tools.

@rem Root of Visual Studio IDE installed files.
@set DevEnvDir=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE

@set PATH=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program
Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual
Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio
Files\Microsoft Visual Studio 8\VC\VCPackages;%PATH%
@set INCLUDE=C:\Program Files\Microsoft Visual Studio
8\VC\INCLUDE;C:\Program Files\Microsoft Platform SDK\Include;%INCLUDE%
@set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program
Files\Microsoft Visual Studio 8\SDK\v2.0\lib;C:\Program Files\Microsoft
Platform SDK\Lib;%LIB%
@set LIBPATH=C:\WINNT\Microsoft.NET\Framework\v2.0.50727

@goto end

@echo ERROR: VSINSTALLDIR variable is not set.
@goto end

@echo ERROR: VCINSTALLDIR variable is not set.
@goto end


On 7/24/07, Tony Smith <tony at smee.org> wrote:
> Hi Dan,
> > Still trying to get p4perl to install, keeping things as plain-vanilla
> as I
> > can:
> >
> > - Windows XP
> > - ActiveState Perl v5.8.8 (latest, I believe)
> > - M$ Visual C++ Express
> > - P4-3.5708
> > - API 2004.2.83213
> It's worth noting that P4Perl 3.5708 was built with the 2006.1 API. While
> it
> should work with an older version (such as the 2004.2 version you're
> using),
> it almost certainly won't work with a newer one.
> > Any help at all would be greatly appreciated...
> See below.
> > libsupp.lib(fileiont.obj) : error LNK2001: unresolved external symbol
> __iob
> > libsupp.lib(diffsp.obj) : error LNK2001: unresolved external symbol
> __iob
> > libclient.lib(clientuser.obj) : error LNK2019: unresolved external
> symbol
> > __iob referenced in function "public: virtual
> > void __thiscall ClientUser::OutputError(char *)"
> (?OutputError at ClientUser@@
> > UAEXPAD at Z)
> > libsupp.lib(debug.obj) : error LNK2001: unresolved external symbol __iob
> > libsupp.lib(echoctl.obj) : error LNK2001: unresolved external symbol
> __iob
> > libsupp.lib(errorlog.obj) : error LNK2001: unresolved external symbol
> __iob
> > blib\arch\auto\P4\P4.dll : fatal error LNK1120: 1 unresolved externals
> > NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio
> > 8\VC\BIN\link.EXE"' : return code '0x460'
> __iob is part of the stdio library. I can't imagine why your linker can't
> find
> that - unless your Visual Studio environment is messed up? I assume LIB,
> INCLUDE and all the other required VS environment variables are set
> correctly? Usually there's a vcvars32.bat file you can run to set them up
> before using the compilers from the command line.
> Can you check that and let us know if it helps?
> Thanks,
> Tony
> --------------------------------------------------------------------------------
> This email and any files transmitted with it are confidential and intended
> solely for the use of the individual or entity to whom they are addressed.
> If
> you have received this email in error please notify the system manager.
> Please
> note that any views or opinions presented in this email are solely those
> of the
> author and do not necessarily represent those of Perforce Software.
> Finally,
> the recipient should check this email and any attachments for the presence
> of
> viruses. Perforce Software accepts no liability for any damage caused by
> any
> virus transmitted by this email.
> Perforce Software UK Ltd is registered in England and Wales as company no.
> 3816019 at the following address: West Forest Gate, Wellington Road,
> Wokingham,
> RG40 2AQ, UK
> --------------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.perforce.com/pipermail/p4perl/attachments/20070724/e77c681a/attachment-0001.html>

More information about the p4perl mailing list