http://www.perlmonks.org?node_id=987922

roho has asked for the wisdom of the Perl Monks concerning the following question:

I am having trouble installing DBD::Informix on Windows 7 with AS Perl 5.8.9. I ran super search but did not find anything that addressed the error I received.

Here are my installation steps:

1. Downloaded and installed Microsoft Visual C++ Express 2010 2. Downloaded and installed Developer edition of Informix (version 11 +.70) Note: Step 3 creates the Informix database required to install and + test DBD::Informix. The README file refers to the 'stores' databa +se, but the demo database creation script in the Informix bin di +rectory creates 'stores_demo@ol_informix1170'. Step 4 sets environment variables to point to this database. 3. Ran C:\PROGRA~2\IBM\Informix\11.70\bin\dbaccessdemo.cmd which crea +ted the following demo database: stores_demo@ol_informix1170 4. Set the following environment variables to point to the stores_dem +o@ol_informix1170 database: set DBI_DBNAME=stores_demo@ol_informix1170 set DBD_INFORMIX_DATABASE=stores_demo@ol_informix1170 5. Set the following other environment variables: set INFORMIXDIR=C:\PROGRA~2\IBM\Informix\11.70 set REGMACHINE=\\SPEEDY5 set INFORMIXSERVER=ol_informix1170 set ONCONFIG=onconfig.ol_informix1170 set PATH=C:\PROGRA~2\IBM\Informix\11.70\bin;C:\Windows\syswow6 +4;%path% 6. Ran cpanm DBD::Informix. It failed on the INFORMIXC line (see foll +owing excerpt of build log): . . Running Mkbootstrap for DBD::Informix () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 Info +rmix.bs C:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlist +s('NAME'=>\"DBD::Informix\", 'DLBASE' => 'Informix', 'DL_FUNCS' => { +DBD::Informix=>[] }, 'FUNCLIST' => [q[ifx_checkAPI]], 'IMPORTS' => { + }, 'DL_VARS' => []);" INFORMIXC='C:\Perl\bin\perl.exe esqlld' ESQLLD='link -dll +-nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE +" -machine:x86' -out:blib\arch\auto\DBD\Informix\Informix.dll -dll +-nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE +" -machine:x86 Informix.obj dbdimp.obj dbdattr.obj sqltoken.obj sqlt +ype.obj ixblob.obj odbctype.obj kludge.obj link.obj esqlcver.obj esql +c_v6.obj /LIBPATH:C:\PROGRA~2\IBM\Informix\11.70/lib /LIBPATH:C:\PROG +RA~2\IBM\Informix\11.70/lib/esql "C:\PROGRA~2\IBM\Informix\11.7 +0\lib\isqlt09a.lib" "C:\PROGRA~2\IBM\Informix\11.70\lib\igl4n304.lib" + "C:\PROGRA~2\IBM\Informix\11.70\lib\iglxn304.lib" "C:\PROGRA~2\IBM\I +nformix\11.70\lib\igo4n304.lib" netapi32.lib wsock32.lib user32.lib w +inmm.lib advapi32.lib C:\Perl\lib\CORE\perl58.lib oldnames.lib kerne +l32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib +shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib +mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib -de +f:Informix.def 'INFORMIXC' is not recognized as an internal or external comma +nd, operable program or batch file. NMAKE : fatal error U1077: 'INFORMIXC='C:\Perl\bin\perl.exe' : + return code '0x1' Stop.

Entire build log is in the following readmore section.

cpanm (App::cpanminus) 1.5015 on perl 5.008009 built for MSWin32-x86-m +ulti-thread Work directory is /.cpanm/work/1345181523.5344 You have make c:\PROGRA~2\MICROS~1.0\VC\BIN\nmake.exe You have LWP 6.04 You have C:\~Zipfile\U\unixcmds\tar.exe, C:\~Zipfile\U\unixcmds\gzip.e +xe and C:\~Zipfile\U\unixcmds\bzip2.exe You have C:\~Zipfile\U\unixcmds\unzip.exe Searching DBD::Informix on cpanmetadb ... --> Working on DBD::Informix Fetching http://www.cpan.org/authors/id/J/JO/JOHNL/DBD-Informix-2011.0 +612.tar.gz -> OK Unpacking DBD-Informix-2011.0612.tar.gz Entering DBD-Informix-2011.0612 Checking configure dependencies from META.yml Checking if you have DBI 1.38 ... Yes (1.622) Configuring DBD-Informix-2011.0612 Running Makefile.PL *** ExtUtils::AutoInstall version 0.63 *** Checking for dependencies... [Core Features] - DBI ...loaded. (1.622 >= 1.38) [High Resolution Timing] - Time::HiRes ...loaded. (1.9725) [POD Format Testing] - Test::Pod ...loaded. (1.45) *** ExtUtils::AutoInstall configuration finished. This is a semi-experimental version of Makefile.PL with Win32 (NT) support. Previous versions have been tested on NT, but there could still be bugs in this code. Please help save the world by trying to debug the NT code and reporting the results back to the DBI Users mailing list. Note: Some of the code here or in ESQL/C may not work properly if %INFORMIXDIR% (or the entry in %PATH% that identifies %INFORMIXDIR%\bin) contains spaces - for example, if you installed CSDK under C:\Program Files) Thanks! Configuring IBM Informix Database Driver for Perl DBI Version 2011.061 +2 (2011-06-12) (aka DBD::Informix) You are using DBI version 1.622 and Perl version 5.008009 Remember to actually read the README file! Perl: C:\Perl\bin\perl.exe v5.008009 MSWin32-x86-multi-thread dl_w +in32.xs System: *** Ideally, you should upgrade to Perl version 5.014000 or later. Using INFORMIXDIR=C:\PROGRA~2\IBM\Informix\11.70 and ESQL/C compiler C +:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE Using IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.T +C5 from C:\PROGRA~2\IBM\Informix\11.70 Beware: DBD::Informix is not yet aware of all the new IUS data types. Assert macro will be disabled! lib/DBD/Informix/Defaults.pm written OK esqlinfo.h written OK Testing whether your Informix test environment will work... esqltest.c IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 esqlc_v6.c IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 Microsoft (R) Incremental Linker Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. -OUT:esqltest.exe -MAP -SUBSYSTEM:CONSOLE esqltest.obj esqlc_v6.obj "C:\PROGRA~2\IBM\Informix\11.70\lib\isqlt09a.lib" "C:\PROGRA~2\IBM\Informix\11.70\lib\igl4n304.lib" "C:\PROGRA~2\IBM\Informix\11.70\lib\iglxn304.lib" "C:\PROGRA~2\IBM\Informix\11.70\lib\igo4n304.lib" netapi32.lib wsock32 +.lib user32.lib winmm.lib advapi32.lib ESQLTEST Program Running: @(#)$Id: esqltest.ec,v 2008.1 2008/05/13 23:13:10 jleffler Exp $ $INFORMIXDIR is set to 'C:\PROGRA~2\IBM\Informix\11.70'. $INFORMIXSERVER is set to 'ol_informix1170'. $DBI_DBNAME set to 'stores_demo@ol_informix1170'. $DBD_INFORMIX_DATABASE set to 'stores_demo@ol_informix1170'. $DBD_INFORMIX_DATABASE2 unset - defaulting to 'stores_demo@ol_info +rmix1170'. $DBD_INFORMIX_USERNAME is unset. $DBD_INFORMIX_USERNAME2 is unset. $DBD_INFORMIX_PASSWORD is unset. $DBD_INFORMIX_PASSWORD2 is unset. Testing connection to stores_demo@ol_informix1170 CONNECT TO 'stores_demo@ol_informix1170' - no user info Testing concurrent connection to stores_demo@ol_informix1170 CONNECT TO 'stores_demo@ol_informix1170' - no user info Your Informix environment is (probably) OK Fortunately, you are using a new version of ESQL/C and we can use 'esql -libs' to tell us which libraries to use. Checking if your kit is complete... Looks good Multiple copies of Driver.xst found in: C:/Perl/site/lib/auto/DBI/ C:/ +Perl/lib/auto/DBI/ at Makefile.PL line 58 Using DBI 1.622 (for perl 5.008009 on MSWin32-x86-multi-thread) instal +led in C:/Perl/site/lib/auto/DBI/ Writing Makefile for DBD::Informix -> OK Finding PREREQ from Makefile ... Checking if you have Time::HiRes 0 ... Yes (1.9725) Checking if you have DBI 1.38 ... Yes (1.622) Building and testing DBD-Informix-2011.0612 Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. cp lib/DBD/Informix/Summary.pm blib\lib\DBD/Informix/Summary.pm cp lib/DBD/Informix/TechSupport.pm blib\lib\DBD/Informix/TechSupport.p +m cp lib/DBD/Informix/GetInfo.pm blib\lib\DBD/Informix/GetInfo.pm cp lib/Bundle/DBD/Informix.pm blib/lib/Bundle/DBD/Informix.pm cp lib/DBD/Informix/Configure.pm blib\lib\DBD/Informix/Configure.pm cp Informix.pm blib\lib\DBD/Informix.pm cp lib/DBD/Informix/TestHarness.pm blib\lib\DBD/Informix/TestHarness.p +m cp lib/DBD/Informix/TypeInfo.pm blib\lib\DBD/Informix/TypeInfo.pm cp lib/DBD/Informix/Defaults.pm blib\lib\DBD/Informix/Defaults.pm cp lib/DBD/Informix/Metadata.pm blib\lib\DBD/Informix/Metadata.pm C:\Perl\bin\perl.exe -p -e "s/~DRIVER~/Informix/g" C:\Perl\site\li +b\auto\DBI\Driver.xst > Informix.xsi C:\Perl\bin\perl.exe C:\Perl\site\lib\ExtUtils\xsubpp -typemap C: +\Perl\lib\ExtUtils\typemap Informix.xs > Informix.xsc && C:\Perl\bin +\perl.exe -MExtUtils::Command -e mv Informix.xsc Informix.c cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/au +to/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/aut +o/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_S +TRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_ +LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO +-DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" + -DXS_VERSION=\"2011.0612\" "-IC:\Perl\lib\CORE" -DESQLC_VERSION=3 +70 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T Informix.c Inform +ix.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2\IBM +\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\lib/a +uto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 - +MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT +-DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLI +CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -M +D -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"2011.0 +612\" -IC:\Perl\lib\CORE -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_S +TDERR_H -DESQLC_IFX_LOC_T dbdimp.ec dbdimp.c IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f dbdimp.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2\IBM +\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\lib/a +uto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 - +MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT +-DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLI +CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -M +D -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"2011.0 +612\" -IC:\Perl\lib\CORE -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_S +TDERR_H -DESQLC_IFX_LOC_T dbdattr.ec dbdattr.c IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f dbdattr.c cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/au +to/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/aut +o/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_S +TRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_ +LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO +-DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" + -DXS_VERSION=\"2011.0612\" "-IC:\Perl\lib\CORE" -DESQLC_VERSION=3 +70 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T sqltoken.c sqltok +en.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2\IBM +\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\lib/a +uto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 - +MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT +-DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLI +CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -M +D -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"2011.0 +612\" -IC:\Perl\lib\CORE -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_S +TDERR_H -DESQLC_IFX_LOC_T sqltype.ec sqltype.c IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f sqltype.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2\IBM +\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\lib/a +uto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 - +MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT +-DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLI +CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -M +D -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"2011.0 +612\" -IC:\Perl\lib\CORE -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_S +TDERR_H -DESQLC_IFX_LOC_T ixblob.ec ixblob.c IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f ixblob.c cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/au +to/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/aut +o/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_S +TRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_ +LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO +-DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" + -DXS_VERSION=\"2011.0612\" "-IC:\Perl\lib\CORE" -DESQLC_VERSION=3 +70 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T odbctype.c odbcty +pe.c cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/au +to/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/aut +o/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_S +TRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_ +LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO +-DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" + -DXS_VERSION=\"2011.0612\" "-IC:\Perl\lib\CORE" -DESQLC_VERSION=3 +70 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T kludge.c kludge.c cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/au +to/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/aut +o/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_S +TRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_ +LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO +-DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" + -DXS_VERSION=\"2011.0612\" "-IC:\Perl\lib\CORE" -DESQLC_VERSION=3 +70 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T link.c link.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2\IBM +\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\lib/a +uto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 - +MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT +-DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLI +CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -M +D -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"2011.0 +612\" -IC:\Perl\lib\CORE -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_S +TDERR_H -DESQLC_IFX_LOC_T esqlcver.ec esqlcver.c IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f esqlcver.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2\IBM +\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\lib/a +uto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 - +MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT +-DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLI +CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -M +D -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"2011.0 +612\" -IC:\Perl\lib\CORE -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_S +TDERR_H -DESQLC_IFX_LOC_T esqlc_v6.ec esqlc_v6.c IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f esqlc_v6.c Running Mkbootstrap for DBD::Informix () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 Informix.bs C:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('NAME' +=>\"DBD::Informix\", 'DLBASE' => 'Informix', 'DL_FUNCS' => { DBD::Inf +ormix=>[] }, 'FUNCLIST' => [q[ifx_checkAPI]], 'IMPORTS' => { }, 'DL_ +VARS' => []);" INFORMIXC='C:\Perl\bin\perl.exe esqlld' ESQLLD='link -dll -nologo +-nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -mach +ine:x86' -out:blib\arch\auto\DBD\Informix\Informix.dll -dll -nologo +-nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -mach +ine:x86 Informix.obj dbdimp.obj dbdattr.obj sqltoken.obj sqltype.obj +ixblob.obj odbctype.obj kludge.obj link.obj esqlcver.obj esqlc_v6.obj + /LIBPATH:C:\PROGRA~2\IBM\Informix\11.70/lib /LIBPATH:C:\PROGRA~2\IBM +\Informix\11.70/lib/esql "C:\PROGRA~2\IBM\Informix\11.70\lib\is +qlt09a.lib" "C:\PROGRA~2\IBM\Informix\11.70\lib\igl4n304.lib" "C:\PRO +GRA~2\IBM\Informix\11.70\lib\iglxn304.lib" "C:\PROGRA~2\IBM\Informix\ +11.70\lib\igo4n304.lib" netapi32.lib wsock32.lib user32.lib winmm.lib + advapi32.lib C:\Perl\lib\CORE\perl58.lib oldnames.lib kernel32.lib +user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32. +lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib +winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib -def:Inform +ix.def 'INFORMIXC' is not recognized as an internal or external command, operable program or batch file. NMAKE : fatal error U1077: 'INFORMIXC='C:\Perl\bin\perl.exe' : return +code '0x1' Stop. -> FAIL Installing DBD::Informix failed. See \.cpanm\build.log for det +ails.

"Its not how hard you work, its how much you get done."

Replies are listed 'Best First'.
Re: Problem Installing DBD::Informix on Windows 7 using AS Perl 5.8.9
by rpnoble419 (Pilgrim) on Aug 17, 2012 at 14:30 UTC

      According to AS this module has not passed its tests.

      Nonsense, that is not what the log says at all , it says

      *** You didn't read the README file! No executable ESQL/C compiler found in $PATH

      Very similar to what the op gets

      'INFORMIXC' is not recognized as an internal or external command, operable program or batch file.
        I have already worked through the "You didn't read the README file! No executable ESQL/C compiler found in $PATH" message. I do have an executable ESQL/C compiler in my path. The error I'm getting is because an invalid line is being generated (i.e., INFORMIXC='C:\Perl\bin\perl.exe esqlld' ESQLLD=..) which is not a valid command. I need to find out where/how this line is generated and how to correct it.

        "Its not how hard you work, its how much you get done."

        I did read the log. When ever I debug a module running under AS, I always look to the AS site to see if the module has been tested. If it has not then I know I might have issues, if it has failed then I know I will have issues. Once armed with these details I know what to look for...
Re: Problem Installing DBD::Informix on Windows 7 using AS Perl 5.8.9
by roho (Bishop) on Aug 20, 2012 at 17:39 UTC
    Calling all C programmers! After resolving the "'INFORMIXC' is not recognized as an internal or exter command" issue, the problem has boiled down to compile errors (unresolved external symbols). I need to get past the compile and link errors produced by nmake so I can do an nmake install and start using DBD::Informix, but it's been over 15 years since I worked with C. Any help would be most apprecidated. Here is the output from my latest attempt at running nmake.The "unresolved" error messages are at the bottom:

    nmake Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\li +b/auto/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib +/auto/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -D +HAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_ +INC -DPERL_ IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFI +X -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"201 +1.0612\" " -IC:\Perl\lib\CORE" -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_ +H -DESQLC_IFX_LOC_T Informix.c Informix.c C:\Perl\lib\CORE\sys/socket.h(32) : warning C4005: 'ENOTSOCK' : macro +redefinition c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\errno.h(120) : see previous definition of 'ENOTSOCK' C:\Perl\lib\auto\DBI\Driver_xst.h(65) : warning C4996: 'sprintf': This + function or variable may be unsafe. Consider using sprintf_s instead +. To disabl e deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for detail +s. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' C:\Perl\lib\auto\DBI\Driver_xst.h(92) : warning C4996: 'sprintf': This + function or variable may be unsafe. Consider using sprintf_s instead +. To disabl e deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for detail +s. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2 +\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\l +ib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 -MD -Zi - +DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HAS +H_SEED -DUS E_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_I +MPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 + -DVERSIO N=\"2011.0612\" -DXS_VERSION=\"2011.0612\" -IC:\Perl\lib\CORE -DESQL +C_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T dbdimp +.ec IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 dbdimp.c C:\Perl\lib\CORE\sys/socket.h(32) : warning C4005: 'ENOTSOCK' : macro +redefinition c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\errno.h(120) : see previous definition of 'ENOTSOCK' dbdimp.ec(147) : warning C4996: '_vsnprintf': This function or variabl +e may be unsafe. Consider using _vsnprintf_s instead. To disable depr +ecation, us e _CRT_SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(363) : see declaration of '_vsnprintf' dbdimp.ec(264) : warning C4996: 'strcpy': This function or variable ma +y be unsafe. Consider using strcpy_s instead. To disable deprecation, + use _CRT_S ECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' dbdimp.ec(265) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(266) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(272) : warning C4996: 'strcpy': This function or variable ma +y be unsafe. Consider using strcpy_s instead. To disable deprecation, + use _CRT_S ECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' dbdimp.ec(273) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(274) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(295) : warning C4996: 'strcpy': This function or variable ma +y be unsafe. Consider using strcpy_s instead. To disable deprecation, + use _CRT_S ECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' dbdimp.ec(296) : warning C4996: 'strcpy': This function or variable ma +y be unsafe. Consider using strcpy_s instead. To disable deprecation, + use _CRT_S ECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' dbdimp.ec(339) : warning C4996: 'strncpy': This function or variable m +ay be unsafe. Consider using strncpy_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(188) : see declaration of 'strncpy' dbdimp.ec(378) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(427) : warning C4996: 'strcpy': This function or variable ma +y be unsafe. Consider using strcpy_s instead. To disable deprecation, + use _CRT_S ECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' dbdimp.ec(431) : warning C4996: 'strcat': This function or variable ma +y be unsafe. Consider using strcat_s instead. To disable deprecation, + use _CRT_S ECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(110) : see declaration of 'strcat' dbdimp.ec(953) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(954) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(955) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(956) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(2036) : warning C4996: 'strcpy': This function or variable m +ay be unsafe. Consider using strcpy_s instead. To disable deprecation +, use _CRT_ SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' dbdimp.ec(2037) : warning C4996: 'strcpy': This function or variable m +ay be unsafe. Consider using strcpy_s instead. To disable deprecation +, use _CRT_ SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' dbdimp.ec(2038) : warning C4996: 'strcpy': This function or variable m +ay be unsafe. Consider using strcpy_s instead. To disable deprecation +, use _CRT_ SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' dbdimp.ec(2348) : warning C4013: 'biginttoasc' undefined; assuming ext +ern returning int dbdimp.ec(2358) : warning C4996: 'sprintf': This function or variable +may be unsafe. Consider using sprintf_s instead. To disable deprecati +on, use _CR T_SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(2367) : warning C4996: 'sprintf': This function or variable +may be unsafe. Consider using sprintf_s instead. To disable deprecati +on, use _CR T_SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' dbdimp.ec(2381) : warning C4996: 'strcpy': This function or variable m +ay be unsafe. Consider using strcpy_s instead. To disable deprecation +, use _CRT_ SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f dbdimp.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2 +\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\l +ib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 -MD -Zi - +DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HAS +H_SEED -DUS E_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_I +MPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 + -DVERSIO N=\"2011.0612\" -DXS_VERSION=\"2011.0612\" -IC:\Perl\lib\CORE -DESQL +C_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T dbdatt +r.ec IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 dbdattr.c C:\Perl\lib\CORE\sys/socket.h(32) : warning C4005: 'ENOTSOCK' : macro +redefinition c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\errno.h(120) : see previous definition of 'ENOTSOCK' dbdattr.ec(280) : warning C4013: 'biginttoasc' undefined; assuming ext +ern returning int dbdattr.ec(556) : warning C4244: 'function' : conversion from 'long' t +o 'ixInt2', possible loss of data C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f dbdattr.c cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\li +b/auto/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib +/auto/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -D +HAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_ +INC -DPERL_ IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFI +X -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"201 +1.0612\" " -IC:\Perl\lib\CORE" -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_ +H -DESQLC_IFX_LOC_T sqltoken.c sqltoken.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2 +\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\l +ib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 -MD -Zi - +DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HAS +H_SEED -DUS E_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_I +MPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 + -DVERSIO N=\"2011.0612\" -DXS_VERSION=\"2011.0612\" -IC:\Perl\lib\CORE -DESQL +C_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T sqltyp +e.ec IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 sqltype.c sqltype.ec(172) : warning C4013: 'snprintf' undefined; assuming extern + returning int C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f sqltype.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2 +\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\l +ib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 -MD -Zi - +DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HAS +H_SEED -DUS E_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_I +MPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 + -DVERSIO N=\"2011.0612\" -DXS_VERSION=\"2011.0612\" -IC:\Perl\lib\CORE -DESQL +C_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T ixblob +.ec IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 ixblob.c ixblob.ec(83) : warning C4996: 'strcpy': This function or variable may + be unsafe. Consider using strcpy_s instead. To disable deprecation, +use _CRT_SE CURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' ixblob.ec(101) : warning C4996: 'getenv': This function or variable ma +y be unsafe. Consider using _dupenv_s instead. To disable deprecation +, use _CRT_ SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdlib.h(433) : see declaration of 'getenv' ixblob.ec(138) : warning C4013: 'getpid' undefined; assuming extern re +turning int ixblob.ec(138) : warning C4996: 'sprintf': This function or variable m +ay be unsafe. Consider using sprintf_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdio.h(371) : see declaration of 'sprintf' ixblob.ec(140) : warning C4996: 'access': The POSIX name for this item + is deprecated. Instead, use the ISO C++ conformant name: _access. Se +e online he lp for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\io.h(299) : see declaration of 'access' ixblob.ec(145) : warning C4996: 'strcpy': This function or variable ma +y be unsafe. Consider using strcpy_s instead. To disable deprecation, + use _CRT_S ECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' ixblob.ec(172) : warning C4996: 'strcpy': This function or variable ma +y be unsafe. Consider using strcpy_s instead. To disable deprecation, + use _CRT_S ECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' ixblob.ec(173) : warning C4996: 'strcat': This function or variable ma +y be unsafe. Consider using strcat_s instead. To disable deprecation, + use _CRT_S ECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(110) : see declaration of 'strcat' ixblob.ec(185) : warning C4996: 'unlink': The POSIX name for this item + is deprecated. Instead, use the ISO C++ conformant name: _unlink. Se +e online he lp for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\io.h(212) : see declaration of 'unlink' ixblob.ec(247) : warning C4996: 'close': The POSIX name for this item +is deprecated. Instead, use the ISO C++ conformant name: _close. See +online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\io.h(302) : see declaration of 'close' ixblob.ec(253) : warning C4996: 'close': The POSIX name for this item +is deprecated. Instead, use the ISO C++ conformant name: _close. See +online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\io.h(302) : see declaration of 'close' ixblob.ec(258) : warning C4996: 'unlink': The POSIX name for this item + is deprecated. Instead, use the ISO C++ conformant name: _unlink. Se +e online he lp for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\io.h(212) : see declaration of 'unlink' C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f ixblob.c cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\li +b/auto/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib +/auto/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -D +HAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_ +INC -DPERL_ IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFI +X -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"201 +1.0612\" " -IC:\Perl\lib\CORE" -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_ +H -DESQLC_IFX_LOC_T odbctype.c odbctype.c cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\li +b/auto/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib +/auto/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -D +HAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_ +INC -DPERL_ IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFI +X -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"201 +1.0612\" " -IC:\Perl\lib\CORE" -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_ +H -DESQLC_IFX_LOC_T kludge.c kludge.c cl -c -IC:\PROGRA~2\IBM\Informix\11.70/incl/esql -IC:\Perl\li +b/auto/DBI -IC:\Perl\site\lib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib +/auto/DBI -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -D +HAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_ +INC -DPERL_ IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFI +X -MD -Zi -DNDEBUG -O1 -DVERSION=\"2011.0612\" -DXS_VERSION=\"201 +1.0612\" " -IC:\Perl\lib\CORE" -DESQLC_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_ +H -DESQLC_IFX_LOC_T link.c link.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2 +\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\l +ib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 -MD -Zi - +DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HAS +H_SEED -DUS E_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_I +MPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 + -DVERSIO N=\"2011.0612\" -DXS_VERSION=\"2011.0612\" -IC:\Perl\lib\CORE -DESQL +C_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T esqlcv +er.ec IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 esqlcver.c C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f esqlcver.c C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2 +\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\l +ib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 -MD -Zi - +DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HAS +H_SEED -DUS E_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_I +MPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 + -DVERSIO N=\"2011.0612\" -DXS_VERSION=\"2011.0612\" -IC:\Perl\lib\CORE -DESQL +C_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T esqlc_ +v6.ec IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 esqlc_v6.c esqlc_v6.ec(33) : warning C4996: 'getenv': This function or variable m +ay be unsafe. Consider using _dupenv_s instead. To disable deprecatio +n, use _CRT _SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\stdlib.h(433) : see declaration of 'getenv' esqlc_v6.ec(41) : warning C4996: 'strcpy': This function or variable m +ay be unsafe. Consider using strcpy_s instead. To disable deprecation +, use _CRT_ SECURE_NO_WARNINGS. See online help for details. c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE +\string.h(105) : see declaration of 'strcpy' C:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f esqlc_v6.c Running Mkbootstrap for DBD::Informix () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 Informix +.bs link -out:blib\arch\auto\DBD\Informix\Informix.dll -dll -nolog +o -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -ma +chine:x86 I nformix.obj dbdimp.obj dbdattr.obj sqltoken.obj sqltype.obj ixblob.obj + odbctype.obj kludge.obj link.obj esqlcver.obj esqlc_v6.obj /LIBPATH: +C:\PROGRA~2 \IBM\Informix\11.70/lib /LIBPATH:C:\PROGRA~2\IBM\Informix\11.70/lib/es +ql "C:/PROGRA~2/IBM/Informix/11.70\lib\isqlt09a.lib" "C:/PROGR +A~2/IBM/Inf ormix/11.70\lib\igl4n304.lib" "C:/PROGRA~2/IBM/Informix/11.70\lib\iglx +n304.lib" "C:/PROGRA~2/IBM/Informix/11.70\lib\igo4n304.lib" netapi32. +lib wsock32 .lib user32.lib winmm.lib advapi32.lib C:\Perl\lib\CORE\perl58.lib ol +dnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.l +ib advapi32 .lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32. +lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib + -def:Infor mix.def Creating library blib\arch\auto\DBD\Informix\Informix.lib and objec +t blib\arch\auto\DBD\Informix\Informix.exp sqltype.obj : error LNK2019: unresolved external symbol _snprintf refe +renced in function _sqltypename ixblob.obj : error LNK2019: unresolved external symbol _mkstemp refere +nced in function _blob_locinanonfile blib\arch\auto\DBD\Informix\Informix.dll : fatal error LNK1120: 2 unre +solved externals NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual S +tudio 10.0\VC\BIN\link.EXE"' : return code '0x460' Stop.

    "Its not how hard you work, its how much you get done."

      C:\PROGRA~2\IBM\Informix\11.70\bin\ESQL.EXE -c -IC:\PROGRA~2 +\IBM\Informix\11.70/incl/esql -IC:\Perl\lib/auto/DBI -IC:\Perl\site\l +ib/auto/DBI -I/auto/DBI -IC:\Perl\site\lib/auto/DBI -cc -nologo -GF -W3 -MD -Zi - +DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HAS +H_SEED -DUS E_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_I +MPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 + -DVERSIO N=\"2011.0612\" -DXS_VERSION=\"2011.0612\" -IC:\Perl\lib\CORE -DESQL +C_VERSION=370 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T sqltyp +e.ec IBM Informix CSDK Version 3.70, IBM Informix-ESQL Version 3.70.TC5 sqltype.c sqltype.ec(172) : warning C4013: 'snprintf' undefined; assuming extern + returning int
      Somewhere in the headers for sqltype.ec/sqltype.c (what is a .ec?) you are missing a declaration for snprintf. How I diagnose this is the following, you need to create a .i post preprocessor file. For most CPAN modules a "nmake nameofCfile.i" will make a .i. Then, this is optional but recommended so your eyes dont bleed, send the .i file through a C code formatter, I use http://universalindent.sourceforge.net/. Then open the .i file in a code editor, for a search for ALL mentions of snprintf (the function name). For a typical CPAN module using my VS 2003, I got the following for snprintf.
      #line 279 "C:\\Program Files\\Microsoft Visual Studio .NET 2003\\VC7\\ +INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _flushall(void); __declspec(dllimport) FILE * __cdecl fopen(const char *, const char *) +; __declspec(dllimport) int __cdecl fprintf(FILE *, const char *, ...); __declspec(dllimport) int __cdecl fputc(int, FILE *); __declspec(dllimport) int __cdecl _fputchar(int); __declspec(dllimport) int __cdecl fputs(const char *, FILE *); __declspec(dllimport) size_t __cdecl fread(void *, size_t, size_t, FIL +E *); __declspec(dllimport) FILE * __cdecl freopen(const char *, const char +*, FILE *); __declspec(dllimport) int __cdecl fscanf(FILE *, const char *, ...); __declspec(dllimport) int __cdecl fsetpos(FILE *, const fpos_t *); __declspec(dllimport) int __cdecl fseek(FILE *, long, int); __declspec(dllimport) long __cdecl ftell(FILE *); __declspec(dllimport) size_t __cdecl fwrite(const void *, size_t, size +_t, FILE *); __declspec(dllimport) int __cdecl getc(FILE *); __declspec(dllimport) int __cdecl getchar(void); __declspec(dllimport) int __cdecl _getmaxstdio(void); __declspec(dllimport) char * __cdecl gets(char *); __declspec(dllimport) int __cdecl _getw(FILE *); __declspec(dllimport) void __cdecl perror(const char *); __declspec(dllimport) int __cdecl _pclose(FILE *); __declspec(dllimport) FILE * __cdecl _popen(const char *, const char * +); __declspec(dllimport) int __cdecl printf(const char *, ...); __declspec(dllimport) int __cdecl putc(int, FILE *); __declspec(dllimport) int __cdecl putchar(int); __declspec(dllimport) int __cdecl puts(const char *); __declspec(dllimport) int __cdecl _putw(int, FILE *); __declspec(dllimport) int __cdecl remove(const char *); __declspec(dllimport) int __cdecl rename(const char *, const char *); __declspec(dllimport) void __cdecl rewind(FILE *); __declspec(dllimport) int __cdecl _rmtmp(void); __declspec(dllimport) int __cdecl scanf(const char *, ...); __declspec(dllimport) void __cdecl setbuf(FILE *, char *); __declspec(dllimport) int __cdecl _setmaxstdio(int); __declspec(dllimport) int __cdecl setvbuf(FILE *, char *, int, size_t) +; __declspec(dllimport) int __cdecl _snprintf(char *, size_t, const char + *, ...); __declspec(dllimport) int __cdecl sprintf(char *, const char *, ...); __declspec(dllimport) int __cdecl _scprintf(const char *, ...); __declspec(dllimport) int __cdecl sscanf(const char *, const char *, . +..); __declspec(dllimport) int __cdecl _snscanf(const char *, size_t, const + char *, ...); __declspec(dllimport) char * __cdecl _tempnam(const char *, const char + *); __declspec(dllimport) FILE * __cdecl tmpfile(void); __declspec(dllimport) char * __cdecl tmpnam(char *); __declspec(dllimport) int __cdecl ungetc(int, FILE *); __declspec(dllimport) int __cdecl _unlink(const char *); __declspec(dllimport) int __cdecl vfprintf(FILE *, const char *, va_li +st); __declspec(dllimport) int __cdecl vprintf(const char *, va_list); __declspec(dllimport) int __cdecl _vsnprintf(char *, size_t, const cha +r *, va_list); __declspec(dllimport) int __cdecl vsprintf(char *, const char *, va_li +st); __declspec(dllimport) int __cdecl _vscprintf(const char *, va_list); ---------------CUT----------------- #line 1 "c:\\perl517\\lib\\core\\proto.h" ---------------CUT----------------- //still in proto.h __declspec(dllimport) void Perl_my_setenv( PerlInterpreter* my_perl + , const char* nam, const char* val); __declspec(dllimport) int Perl_my_snprintf(char *buffer, const size +_t len, const char *format, ...) ; ------------------------CUT----------------------- //still in proto.h I think __declspec(dllimport) I32 Perl_my_stat_flags( PerlInterpreter* my_p +erl , const U32 flags); __declspec(dllimport) char * Perl_my_strftime( PerlInterpreter* my_ +perl , const char *fmt, int sec, int min, int hour, int mday, int mon +, int year, int wday, int yday, int isdst) ; __declspec(dllimport) void Perl_my_swabn(void* ptr, int n) ; __declspec(dllimport) void Perl_my_unexec( PerlInterpreter* my_perl + ); __declspec(dllimport) int Perl_my_vsnprintf(char *buffer, const siz +e_t len, const char *format, va_list ap) ;
      The lack of the header declaration, and that ALONE, is what caused the "assuming extern returning int" error. My VS 2008 also doesn't have a snprintf. The problem now is, do we get a snprintf? comment out where it is used? Write one from scratch? write a dummy that just returns? copy paste from another FOSS project? find an equivalent under another name? look for an undocumented MS CRT DLL export?

      First lets look and see if the Perl interp has a work around. Grepping /Windows search the perl interp source code, reveals this line, win32/win32.h#l207 in perl.git
      196 #ifdef _MSC_VER /* Microsoft Visual C++ */ 197 198 #ifndef UNDER_CE 199 typedef long uid_t; 200 typedef long gid_t; 201 typedef unsigned short mode_t; 202 #endif 203 204 #pragma warning(disable: 4102) /* "unreferenced label" */ 205 206 #define isnan _isnan 207 #define snprintf _snprintf 208 #define vsnprintf _vsnprintf 209 210 #if _MSC_VER < 1300 211 /* VC6 has broken NaN semantics: NaN == NaN returns true instead +of false */ 212 #define NAN_COMPARE_BROKEN 1 213 #endif 214 215 #endif /* _MSC_VER */
      I guess that is the best thing to try. Since I dont know the headers/includes in sqltype/.c/.ec files are I can't tell you if sqltype is perl-aware (has EXTERN.h, perl.h, XSUB.h) or not. If it is perl aware, it should have gotten that redefinition, and if that redefinition didn't happen yet the compiland is perl aware that is a different problem to trouble shoot.

      Since _snprintf is in msvcrt.lib and msvcrt.lib is on the cmd line to link, the link will work then.
      link -out:blib\arch\auto\DBD\Informix\Informix.dll -dll -nolog +o -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -ma +chine:x86 I nformix.obj dbdimp.obj dbdattr.obj sqltoken.obj sqltype.obj ixblob.obj + odbctype.obj kludge.obj link.obj esqlcver.obj esqlc_v6.obj /LIBPATH: +C:\PROGRA~2 \IBM\Informix\11.70/lib /LIBPATH:C:\PROGRA~2\IBM\Informix\11.70/lib/es +ql "C:/PROGRA~2/IBM/Informix/11.70\lib\isqlt09a.lib" "C:/PROGR +A~2/IBM/Inf ormix/11.70\lib\igl4n304.lib" "C:/PROGRA~2/IBM/Informix/11.70\lib\iglx +n304.lib" "C:/PROGRA~2/IBM/Informix/11.70\lib\igo4n304.lib" netapi32. +lib wsock32 .lib user32.lib winmm.lib advapi32.lib C:\Perl\lib\CORE\perl58.lib ol +dnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.l +ib advapi32 .lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32. +lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib + -def:Infor mix.def Creating library blib\arch\auto\DBD\Informix\Informix.lib and objec +t blib\arch\auto\DBD\Informix\Informix.exp sqltype.obj : error LNK2019: unresolved external symbol _snprintf refe +renced in function _sqltypename ixblob.obj : error LNK2019: unresolved external symbol _mkstemp refere +nced in function _blob_locinanonfile blib\arch\auto\DBD\Informix\Informix.dll : fatal error LNK1120: 2 unre +solved externals NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual S +tudio 10.0\VC\BIN\link.EXE"' : return code '0x460' Stop.
      The "ixblob.obj : error LNK2019: unresolved external symbol _mkstemp referenced in function _blob_locinanonfile" error will be more difficult to diagnose. Again looking through a typical CPAN module .i file I see.
      #line 280 "c:\\perl517\\lib\\core\\win32.h" extern char * getlogin(void); extern int chown(const char *p, uid_t o, gid_t g); extern int mkstemp(const char *path); __declspec(dllimport) void Perl_win32_init(int *argcp, char *** +argvp); __declspec(dllimport) void Perl_win32_term(void); __declspec(dllimport) void Perl_init_os_extras(void); __declspec(dllimport) void win32_str_os_error(void *sv, DWORD e +rr); __declspec(dllimport) int RunPerl(int argc, char **argv, char * +*env);
      Thats really interesting. That is the 1 and only mention of mkstemp in the .i file. I look at export list of msvcr100.dll (happens to be on my screen), no mkstemp or _mkstemp, I also looked at export list of perl517.dll (my perl). Its a bug with the perl interp. Perl declares a mkstemp at win32/win32.h#l282 in perl.git, but Perl's internal mkstemp at win32/win32.c#l1089 in perl.git isn't exported, so that badly suppressed another "assuming extern returning int" you should have gotten. I'm off to file another RT bug now.