List Info

Thread: 8 hrs invested, 1 unresolved external symbol to go...




8 hrs invested, 1 unresolved external symbol to go...
user name
2007-07-23 20:07:01
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

Any help at all would be greatly appreciated...

Thanks.


Gory Details:

C:p4perlP4-3.5708>nmake

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        cd lib && "C:Program FilesMicrosoft Visual Studio 8VCBINnmake.exe"

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -c  -IC:/p4perl/r04.2-bin.ntx86 -Ilib ; -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -D
HAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCR
T_READFIX -MD -Zi -DNDEBUG -O1    -DVERSION="";  -DXS_VERSION=""  "-IC:PerllibCORE; /TP -DOS_NT  -DP4API_VERSION=
513026 -DBUILD_DATE=1185238672 -Dconst_char="char" p4result.cc
p4result.cc
c:p4perlr04.2-bin.ntx86filesys.h(178) : warning C4244: '='; : conversion from 'time_t' to 'int', possible loss of data

      ;  cl -c  -IC:/p4perl/r04.2-bin.ntx86 -Ilib ; -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -D
HAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCR
T_READFIX -MD -Zi -DNDEBUG -O1    -DVERSION="";  -DXS_VERSION=""  "-IC:PerllibCORE; /TP -DOS_NT  -DP4API_VERSION=
513026 -DBUILD_DATE=1185238672 -Dconst_char="char" perlclientapi.cc
perlclientapi.cc
c:p4perlr04.2-bin.ntx86filesys.h(178) : warning C4244: '='; : conversion from 'time_t' to 'int', possible loss of data

perlclientapi.cc(90) : warning C4996: 'localtime' was declared deprecated
       ; C:Program FilesMicrosoft Visual Studio 8VCINCLUDEtime.inl(114) : see declaration of 'localtime'
    ;    Message: 'This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, u
se _CRT_SECURE_NO_DEPRECATE. See online help for details.'
perlclientapi.cc(98) : warning C4996: 'sprintf' was declared deprecated
        C:Program FilesMicrosoft Visual Studio 8VCINCLUDEstdio.h(345) : see declaration of 'sprintf'
    ;    Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use
 _CRT_SECURE_NO_DEPRECATE. See online help for details.'
perlclientapi.cc(104) : warning C4996: 'sprintf' was declared deprecated
       ; C:Program FilesMicrosoft Visual Studio 8VCINCLUDEstdio.h(345) : see declaration of 'sprintf'
        Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use
 _CRT_SECURE_NO_DEPRECATE. See online help for details.'
     ;   cl -c  -IC:/p4perl/r04.2-bin.ntx86 -Ilib ; -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -D
HAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCR
T_READFIX -MD -Zi -DNDEBUG -O1    -DVERSION="";  -DXS_VERSION=""  "-IC:PerllibCORE; /TP -DOS_NT  -DP4API_VERSION=
513026 -DBUILD_DATE=1185238672 -Dconst_char="char" perlclientuser.cc
perlclientuser.cc
c:p4perlr04.2-bin.ntx86filesys.h(178) : warning C4244: '='; : conversion from 'time_t' to 'int', possible loss of data

perlclientuser.cc(371) : warning C4101: 'seq' : unreferenced local variable
        lib /OUT:libp4.lib p4result.obj  perlclientapi.obj  perlclientuser.obj
Microsoft (R) Library Manager Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:Program FilesMicrosoft Visual Studio 8VCBINnmake.exe" -f Makefile all -nologo
  ;      cd ..
     ;   C:Perlbinperl.exe C:PerllibExtUtilsxsubpp  -C++ -prototypes -typemap C:PerllibExtUtilstypemap  P4.xs
> P4.xsc && C:Perlbinperl.exe -MExtUtils::Command -e mv P4.xsc P4.c
        cl -c  -IC:/p4perl/r04.2-bin.ntx86 -Ilib ; -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -D
HAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCR
T_READFIX -MD -Zi -DNDEBUG -O1    -DVERSION="3.5708"  -DXS_VERSION="3.5708"  "-IC:PerllibCORE; /TP -DOS_NT  -DP4
API_VERSION=513026 -DBUILD_DATE=1185238672 -Dconst_char="char" P4.c
P4.c
c:p4perlr04.2-bin.ntx86filesys.h(178) : warning C4244: '='; : conversion from 'time_t' to 'int', possible loss of data

P4.xs(358) : warning C4996: 'sprintf' was declared deprecated
       ; C:Program FilesMicrosoft Visual Studio 8VCINCLUDEstdio.h(345) : see declaration of 'sprintf'
        Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use
 _CRT_SECURE_NO_DEPRECATE. See online help for details.'
Running Mkbootstrap for P4 ()
     ;   C:Perlbinperl.exe -MExtUtils::Command -e chmod 644 P4.bs
        C:Perlbinperl.exe -MExtUtils::Mksymlists  -e "Mksymlists(';NAME'=>"P4", 'DLBASE' => 'P49;, 'DL_FUNCS' => {  }
, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
        link -out:blibarchautoP4P4.dll -dll -nologo -nodefaultlib -opt:ref,icf  -libpath:"C:PerllibCORE"  -machin
e86 P4.obj  lib/libp4.lib C:PerllibCOREperl58.lib C:p4perlr04.2-bin.ntx86libclient.lib C:p4perlr04.2-bin.ntx8
6librpc.lib C:p4perlr04.2-bin.ntx86libsupp.lib "C:Program FilesMicrosoft Visual Studio 8VCLIBoldnames.lib" "C:
Program FilesMicrosoft Visual Studio 8VCLIBkernel32.lib" "C:Program FilesMicrosoft Platform SDKLibuser32.lib"; "C
:Program FilesMicrosoft Platform SDKLibgdi32.lib" "C:Program FilesMicrosoft Platform SDKLibwinspool.lib" "C:Pro
gram FilesMicrosoft Platform SDKLibcomdlg32.lib" "C:Program FilesMicrosoft Platform SDKLibadvapi32.lib" "C:Progr
am FilesMicrosoft Platform SDKLibshell32.lib" "C:Program FilesMicrosoft Platform SDKLibole32.lib" "C:Program Fil
esMicrosoft Platform SDKLiboleaut32.lib" "C:Program FilesMicrosoft Platform SDKLibnetapi32.lib" "C:Program Files
Microsoft Platform SDKLibuuid.lib" "C:Program FilesMicrosoft Platform SDKLibws2_32.lib"; "C:Program FilesMicroso
ft Platform SDKLibmpr.lib" "C:Program FilesMicrosoft Platform SDKLibwinmm.lib" "C:Program FilesMicrosoft Platfor
m SDKLibversion.lib" "C:Program FilesMicrosoft Visual Studio 8VCLIBmsvcrt.lib"; -def: P4.def
   Creating library blibarchautoP4P4.lib and object blibarchautoP4P4.exp
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 *)" (?OutputErrorClientUserUAEXPADZ )
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
blibarchautoP4P4.dll : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '";C:Program FilesMicrosoft Visual Studio 8VCBINlink.EXE"' : return code '0x460'
Stop.
Re: 8 hrs invested, 1 unresolved external symbol to go...
country flaguser name
United Kingdom
2007-07-24 05:47:11
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 *)"
(?OutputErrorClientUser
> UAEXPADZ)
> 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
> blibarchautoP4P4.dll : fatal error LNK1120: 1
unresolved externals
> NMAKE : fatal error U1077: '"C:Program
FilesMicrosoft Visual Studio
> 8VCBINlink.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
_______________________________________________
p4perl mailing list
p4perlperforce.com

http://maillist.perforce.com/mailman/listinfo/p4perl

Re: 8 hrs invested, 1 unresolved external symbol to go...
user name
2007-07-24 11:03:36
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 nmake:

SET VSINSTALLDIR=C:Program FilesMicrosoft Visual Studio 8
SET VCINSTALLDIR=C:Program FilesMicrosoft Visual Studio 8VC
SET FrameworkDir=C:WINNTMicrosoft.NETFramework
SET FrameworkVersion=v2.0.50727
SET FrameworkSDKDir=C:Program FilesMicrosoft Visual Studio 8SDKv2.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
rem Root of Visual Studio IDE installed files.
rem
set DevEnvDir=C:Program FilesMicrosoft Visual Studio 8Common7IDE

set PATH=C:Program FilesMicrosoft Visual Studio 8Common7IDE;C:Program FilesMicrosoft Visual Studio 8VCBIN;C:Program FilesMicrosoft Visual Studio 8Common7Tools;C:Program FilesMicrosoft Visual Studio 8SDKv2.0bin;C:WINNTMicrosoft.NETFrameworkv2.0.50727;C:Program FilesMicrosoft Visual Studio 8VCVCPackages;%PATH%
set INCLUDE=C:Program FilesMicrosoft Visual Studio 8VCINCLUDE;C:Program FilesMicrosoft Platform SDKInclude;%INCLUDE%
set LIB=C:Program FilesMicrosoft Visual Studio 8VCLIB;C:Program FilesMicrosoft Visual Studio 8SDKv2.0lib;C:Program FilesMicrosoft Platform SDKLib;%LIB%
set LIBPATH=C:WINNTMicrosoft.NETFrameworkv2.0.50727

goto end

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

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

:end





On 7/24/07, Tony Smith < tonysmee.org">tonysmee.org&gt; 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)
&gt; - 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.

&gt; libsupp.lib(fileiont.obj) : error LNK2001: unresolved external symbol __iob
&gt; 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 *)" (?OutputErrorClientUser
> UAEXPADZ)
> libsupp.lib(debug.obj) : error LNK2001: unresolved external symbol __iob
> libsupp.lib(echoctl.obj) : error LNK2001: unresolved external symbol __iob
&gt; libsupp.lib(errorlog.obj) : error LNK2001: unresolved external symbol __iob
> blibarchautoP4P4.dll : fatal error LNK1120: 1 unresolved externals
> NMAKE : fatal error U1077: '";C:Program FilesMicrosoft Visual Studio
&gt; 8VCBINlink.EXE"&#39; : 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
--------------------------------------------------------------------------------

Fwd: 8 hrs invested, 1 unresolved external symbol to go...
user name
2007-07-24 11:16:03
I found this:

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=327790&SiteID=1

LNK2001s/LNK2019s&nbsp;are usually a result of mixing debug libs with release libs (or libs compiled with another version of Visual Studio).&nbsp;It can also be caused by static libraries&nbsp;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.lindygmail.com">dan.lindygmail.com>
Date: Jul 24, 2007 12:03 PM
Subject: Re: [p4perl] 8 hrs invested, 1 unresolved external symbol to go...
To: Tony Smith < tonysmee.org">tonysmee.org&gt;
Cc: p4perlperforce.com">p4perlperforce.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 nmake:

SET VSINSTALLDIR=C:Program FilesMicrosoft Visual Studio 8
SET VCINSTALLDIR=C:Program FilesMicrosoft Visual Studio 8VC
SET FrameworkDir=C:WINNTMicrosoft.NETFramework
SET FrameworkVersion=v2.0.50727
SET FrameworkSDKDir=C:Program FilesMicrosoft Visual Studio 8SDKv2.0
if "%VSINSTALLDIR%&quot;==&quot;" goto error_no_VSINSTALLDIR
if "%VCINSTALLDIR%&quot;==&quot;" goto error_no_VCINSTALLDIR

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

rem
rem Root of Visual Studio IDE installed files.
rem
set DevEnvDir=C:Program FilesMicrosoft Visual Studio 8Common7IDE

set PATH=C:Program FilesMicrosoft Visual Studio 8Common7IDE;C:Program FilesMicrosoft Visual Studio 8VCBIN;C:Program FilesMicrosoft Visual Studio 8Common7Tools;C:Program FilesMicrosoft Visual Studio 8SDKv2.0bin;C:WINNTMicrosoft.NETFrameworkv2.0.50727;C:Program FilesMicrosoft Visual Studio 8VCVCPackages;%PATH%
set INCLUDE=C:Program FilesMicrosoft Visual Studio 8VCINCLUDE;C:Program FilesMicrosoft Platform SDKInclude;%INCLUDE%
set LIB=C:Program FilesMicrosoft Visual Studio 8VCLIB;C:Program FilesMicrosoft Visual Studio 8SDKv2.0lib;C:Program FilesMicrosoft Platform SDKLib;%LIB%
set LIBPATH=C:WINNTMicrosoft.NETFrameworkv2.0.50727

goto end

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

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

:end






On 7/24/07, Tony Smith < tonysmee.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> tonysmee.org&gt; 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)
&gt; - 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.

&gt; 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 *)" (?OutputErrorClientUser
> UAEXPADZ)
> libsupp.lib(debug.obj) : error LNK2001: unresolved external symbol __iob
> libsupp.lib(echoctl.obj) : error LNK2001: unresolved external symbol __iob
&gt; libsupp.lib(errorlog.obj) : error LNK2001: unresolved external symbol __iob
> blibarchautoP4P4.dll : fatal error LNK1120: 1 unresolved externals
> NMAKE : fatal error U1077: '";C:Program FilesMicrosoft Visual Studio
&gt; 8VCBINlink.EXE"&#39; : 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
--------------------------------------------------------------------------------

Re: Fwd: 8 hrs invested, 1 unresolved external symbol to go...
country flaguser name
United Kingdom
2007-07-25 04:00:57
On Tuesday 24 July 2007 17:16, Dan Lindy wrote:
> I found this:
>
> http://forums.microsoft.com/MSDN/ShowPo
st.aspx?PostID=327790&SiteID=1
>
> 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.

OK, I've reproduced this, and I can't get P4Perl to build
with ActivePerl 
5.8.8 and VS 2005 either. Using the Perforce API at:

http://filehost.perforce.com/perforce/r06.2/b
in.ntx86/dyn/p4api.tar

resolves the build errors, but then you hit runtime loading
errors which, I 
think, have to do with incompatibilities between the version
of Visual Studio 
used to compile Perl and the version used for P4Perl.
Microsoft's C Runtime 
problems basically.

Do you need to build it yourself Dan, or can you just use
the pre-built 
installer? The precompiled installer for the development
build is compatible 
with ActivePerl 5.8.8 (it's compiled with Visual Studio
2003). If you want to 
compile it yourself, I suspect you'll need to use VS 2003.

Tony
_______________________________________________
p4perl mailing list
p4perlperforce.com

http://maillist.perforce.com/mailman/listinfo/p4perl

Re: Fwd: 8 hrs invested, 1 unresolved external symbol to go...
user name
2007-07-25 07:41:57
Hi Tony,

Thanks for the follow-up. I was actually unaware that the Windows installer included a pre-built version of the binary. I was under the impression, from the documentation, that the binary had to be built locally. Now that I look at the page again it seems obvious, but it wasn't when I was reading through your instructions as there is no mention of using the bre-built binary in step #2.

Because of the plethora of version compatibility issues, I am uneasy at this point about using an API which may break during a future upgrade, so I am electing to go with basic scripting (using system calls to p4 commands). This is less than ideal, as I am interested in listening to audit events, but seems a simpler and more stable approach, at least for now.

If I had lots of time on my hands to get the API working and play around with it, I'd likely go that route. For now, I'm out of time and need to move on.

Thanks for your help, though. P4Perl looks like a worthwhile project and I hope to get a chance to use it in the future.

Best,
Dan


On 7/25/07, Tony Smith < tonysmee.org">tonysmee.org&gt; wrote:
On Tuesday 24 July 2007 17:16, Dan Lindy wrote:
>; I found this:
>
> http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=327790&SiteID=1
>
> LNK2001s/LNK2019s are usually a result of mixing debug libs with release
&gt; 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.

OK, I've reproduced this, and I can't get P4Perl to build with ActivePerl
5.8.8 and VS 2005 either. Using the Perforce API at:

http://filehost.perforce.com/perforce/r06.2/bin.ntx86/dyn/p4api.tar

resolves the build errors, but then you hit runtime loading errors which, I
think, have to do with incompatibilities between the version of Visual Studio
used to compile Perl and the version used for P4Perl. Microsoft&#39;s C Runtime
problems basically.

Do you need to build it yourself Dan, or can you just use the pre-built
installer? The precompiled installer for the development build is compatible
with ActivePerl 5.8.8 (it's compiled with Visual Studio 2003). If you want to
compile it yourself, I suspect you'll need to use VS 2003.

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
--------------------------------------------------------------------------------

Re: Fwd: 8 hrs invested, 1 unresolved external symbol to go...
country flaguser name
United Kingdom
2007-07-25 08:24:58
Hi Dan,

> Thanks for the follow-up. I was actually unaware that
the Windows installer
> included a pre-built version of the binary. I was under
the impression,
> from the documentation, that the binary had to be built
locally. Now that I
> look at the page again it seems obvious, but it wasn't
when I was reading
> through your instructions as there is no mention of
using the bre-built
> binary in step #2.

Thanks for the feedback, I'll take a look at improving the
page.

> Because of the plethora of version compatibility
issues, I am uneasy at
> this point about using an API which may break during a
future upgrade, 

I'm not sure I agree with that - once it's installed, it
works with all 
versions of Perforce, so you only need to upgrade if you
want to (and you can 
test that before you do it). 

> so I 
> am electing to go with basic scripting (using system
calls to p4 commands).
> This is less than ideal, as I am interested in
listening to audit events,
> but seems a simpler and more stable approach, at least
for now.

I'm sorry you had a hard time getting P4Perl to build, but I
hope it hasn't 
given you the wrong impression. P4Perl really is very stable
and is widely 
used.

The issue we hit is discussed online at: 
http://www.p
erlmonks.org/?node_id=621976 (amongst others), and it
seems that 
ActiveState are still using VS 6.0 to compile ActivePerl.
Small wonder then 
that modules compiled with VS 2005 aren't instantly
compatible with it! I 
think ActiveState have been lucky to get away with it for so
long. 

> If I had lots of time on my hands to get the API
working and play around
> with it, I'd likely go that route. For now, I'm out of
time and need to
> move on.
>
> Thanks for your help, though. P4Perl looks like a
worthwhile project and I
> hope to get a chance to use it in the future.

Good luck Dan.

Tony
_______________________________________________
p4perl mailing list
p4perlperforce.com

http://maillist.perforce.com/mailman/listinfo/p4perl

Re: Fwd: 8 hrs invested, 1 unresolved external symbol to go...
country flaguser name
United States
2007-07-25 09:11:54
> Seems it may not be possible to use VS 2005 unless
Perforce provide a
> compatible set of libs.

Note that until very recently, Perl on Windows couldn't be
compiled by
VS2005 - and that meant that modules couldn't be compiled
with it
either.  I think only with the latest ActiveState build
(820) did
building with VS2005 become possible.

John

_______________________________________________
p4perl mailing list
p4perlperforce.com

http://maillist.perforce.com/mailman/listinfo/p4perl

[1-8]

about | contact  Other archives ( Real Estate discussion Medical topics )