in reply to Re^13: Trouble Installing Win32::GuiTest
in thread Trouble Installing Win32::GuiTest

Hey Rob, Thanks to ur instructions this time I have generated the libperl514.a of 860KB size. :) But now during the make test message is prompted that "The program can't start because libgcc_s_sjlj-1.dll is missing from your computer. Try reinstalling the program to fix this problem." Output is here

CPAN.pm: Going to build K/KA/KARASIK/Win32-GuiTest-1.60.tar.gz Set up gcc environment - gcc.exe (rubenvb-4.5.4) 4.5.4 Checking if your kit is complete... Looks good Writing Makefile for Win32::GuiTest Writing MYMETA.yml cp lib/Win32/GuiTest/GuiTest.pc blib\lib\Win32\GuiTest\GuiTest.pc cp lib/Win32/GuiTest/Examples.pm blib\lib\Win32\GuiTest\Examples.pm cp lib/Win32/GuiTest.pm blib\lib\Win32\GuiTest.pm cp lib/Win32/GuiTest/Cmd.pm blib\lib\Win32\GuiTest\Cmd.pm C:\Perl64\bin\perl.exe -IC:\Perl64\lib -IC:\Perl64\lib C:\Perl64\lib\E +xtUtils\xsubpp -typemap C:\Perl64\lib\ExtUtils\typemap -typemap perl +object.map -typemap gcc -c -O2 -DWIN32 -DPERL_IMPLICIT_CONTEXT -DPERL_MSVCRT_READ +FIX -O2 -DVERSION=\"1.60\" -DXS_VERSION=\"1.60\" -DHASATTRIBUT +E "-IC:\Perl64\lib\C gcc -c -O2 -DWIN32 -DPERL_IMPLICIT_CONTEXT -DPERL_MSVCRT_READ +FIX -O2 -DVERSION=\"1.60\" -DXS_VERSION=\"1.60\" -DHASATTRIBUT +E "-IC:\Perl64\lib\C Running Mkbootstrap for Win32::GuiTest () C:\Perl64\bin\perl.exe -MExtUtils::Command -e "chmod" -- 644 GuiTest.b +s C:\Perl64\bin\perl.exe -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"Win32::GuiTest\", 'DLBASE' => 'GuiTest', + 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' = +> []);" dlltool --def GuiTest.def --output-exp dll.exp g++ -o blib\arch\auto\Win32\GuiTest\GuiTest.dll -Wl,--base-file -Wl,dl +l.base -s -mdll -L"C:\Perl64\lib\CORE" GuiTest.o DibSect.o C:\Perl6 +4\lib\CORE\libperl51 dlltool --def GuiTest.def --base-file dll.base --output-exp dll.exp g++ -o blib\arch\auto\Win32\GuiTest\GuiTest.dll -s -mdll -L"C:\Perl64\ +lib\CORE" GuiTest.o DibSect.o C:\Perl64\lib\CORE\libperl514.a -lmsv +crt -lmoldname -lker C:\Perl64\bin\perl.exe -MExtUtils::Command -e "chmod" -- 755 blib\arch +\auto\Win32\GuiTest\GuiTest.dll C:\Perl64\bin\perl.exe -MExtUtils::Command -e "cp" -- GuiTest.bs blib\ +arch\auto\Win32\GuiTest\GuiTest.bs C:\Perl64\bin\perl.exe -MExtUtils::Command -e "chmod" -- 644 blib\arch +\auto\Win32\GuiTest\GuiTest.bs KARASIK/Win32-GuiTest-1.60.tar.gz dmake -- OK Running make test C:\Perl64\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, + 'blib\lib', 'blib\arch')" t/*.t t/01_basic.t ..... Can't load 'C:\Perl64\cpan\build\Win32-GuiTest-1.60 +-5fvYWK\blib\arch/auto/Win32/GuiTest/GuiTest.dll' for module Win32::G +uiTest: load_file:Th at t/01_basic.t line 12 Compilation failed in require at t/01_basic.t line 12. BEGIN failed--compilation aborted at t/01_basic.t line 12. t/01_basic.t ..... Dubious, test returned 2 (wstat 512, 0x200) No subtests run t/02_calc.t ...... skipped: this test is phased out t/03_cpl.t ....... Can't load 'C:\Perl64\cpan\build\Win32-GuiTest-1.60 +-5fvYWK\blib\arch/auto/Win32/GuiTest/GuiTest.dll' for module Win32::G +uiTest: load_file:Th at t/03_cpl.t line 19 Compilation failed in require at t/03_cpl.t line 19. BEGIN failed--compilation aborted at t/03_cpl.t line 22. t/03_cpl.t ....... Dubious, test returned 2 (wstat 512, 0x200) No subtests run t/04_std.t ....... Can't load 'C:\Perl64\cpan\build\Win32-GuiTest-1.60 +-5fvYWK\blib\arch/auto/Win32/GuiTest/GuiTest.dll' for module Win32::G +uiTest: load_file:Th at t/04_std.t line 12 Compilation failed in require at t/04_std.t line 12. BEGIN failed--compilation aborted at t/04_std.t line 15. t/04_std.t ....... Dubious, test returned 2 (wstat 512, 0x200) No subtests run t/05_which.t ..... ok t/06_sendkeys.t .. Can't load 'C:\Perl64\cpan\build\Win32-GuiTest-1.60 +-5fvYWK\blib\arch/auto/Win32/GuiTest/GuiTest.dll' for module Win32::G +uiTest: load_file:Th at t/06_sendkeys.t line 12 Compilation failed in require at t/06_sendkeys.t line 12. BEGIN failed--compilation aborted at t/06_sendkeys.t line 12. t/06_sendkeys.t .. Dubious, test returned 2 (wstat 512, 0x200) No subtests run Test Summary Report ------------------- t/01_basic.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/03_cpl.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/04_std.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/06_sendkeys.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output Files=6, Tests=6, 425 wallclock secs ( 0.03 usr + 0.03 sys = 0.06 CP +U) Result: FAIL Failed 4/6 test programs. 0/6 subtests failed. dmake.exe: Error code 130, while making 'test_dynamic' KARASIK/Win32-GuiTest-1.60.tar.gz dmake test -- NOT OK //hint// to see the cpan-testers results for installing this module, t +ry: reports KARASIK/Win32-GuiTest-1.60.tar.gz Running make install make test had returned bad status, won't install without force Failed during this command: KARASIK/Win32-GuiTest-1.60.tar.gz : make_test NO
This dll file is available in strawberry516. So, can I copy this dll file from strwaberry perl C:_\strawberry516\c\bin to C:\Perl64\bin and again rerun the installation and check.

Replies are listed 'Best First'.
Re^15: Trouble Installing Win32::GuiTest
by syphilis (Archbishop) on Aug 22, 2012 at 10:54 UTC
    ...program can't start because libgcc_s_sjlj-1.dll is missing

    I haven't used any of Ruben's builds of MinGW, but I would have expected that there would be a libgcc_s_sjlj-1.dll in the same ('bin') folder as gcc.
    Search the entire compiler tree for that file and, if you find it, add that location to your PATH.
    I think you might find it in both the compiler's mingw\lib and x86_64-w64-mingw32\lib folder - in which case you just add either of those locations to the path.

    This dll file is available in strawberry516

    Best not to copy it across to a different compiler.
    You could use the compiler that came with Strawberry instead of Ruben's, if you like. Just put the strawberry/c/bin folder first in the path.

    However, Ruben's should be fine, I think ... once you find libgcc_s_sjlj-1.dll and add it's location to the path.

    Cheers,
    Rob
Re^15: Trouble Installing Win32::GuiTest
by nsharma (Initiate) on Aug 22, 2012 at 11:10 UTC

    Hi Rob, Thanks once again for your help. I have copied all dll files present in strawberry perl to c:\perl64\bin and ran the installation. Thankfully, I was able to install Win32::GuiTest module on perl64 successfully. But my problem still not solved reason being, I have a automated framework suite where I have used Win32::GuiTest module to test the GUI functionality of the windows application 32 bit and 64 bit. This module perfectly working fine for 32 bit application but for 64 bit application it fails for APIs like GetPopupHandle, GetListContents etc. Moreover with this I have one more module named "TreeView.pm" (Win32::GuiTest::TreeView) this module basically traverse the systreeview class and provide us the relevant information but this module also not working properly on windows 64 bit application. So, unfortunately again I got stuck and wondering now what to do and also want to know that this module Win32::GuiTest compiled as 64 bit by 64 bit compiler or its simply installed as 32 bit. Thanks.

      for 64 bit application it fails for APIs like GetPopupHandle, GetListContents etc.

      I don't know whether that happens because all of the files you copied across have broken Ruben's compiler ... or whether its' something that's happening for other reasons.

      If you like to provide a small script that demonstrates your problem on 64-bit perls (and is something that I could run), I'll give it a run (using my 64-bit compiler, which I know to be unbroken) and see if I get the same problem.
      (Probably best to provide the demo in a new thread - I don't think there would be many people still following *this* thread.)

      Cheers,
      Rob

      FWIW: Win32::GuiTest version 1.60 compiles & tests okay, if a little noisily using MSVC 64-bit:

      [13:21:18.88] C:\Perl64\packages\Win32-GuiTest-1.60>makefile Checking if your kit is complete... Looks good Writing Makefile for Win32::GuiTest [13:21:26.25] C:\Perl64\packages\Win32-GuiTest-1.60>nmake Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. cp lib/Win32/GuiTest/GuiTest.pc blib\lib\Win32\GuiTest\GuiTest.pc cp lib/Win32/GuiTest/Examples.pm blib\lib\Win32\GuiTest\Examples.pm cp lib/Win32/GuiTest.pm blib\lib\Win32\GuiTest.pm cp lib/Win32/GuiTest/Cmd.pm blib\lib\Win32\GuiTest\Cmd.pm C:\perl64\bin\perl.exe -IC:\Perl64\lib -IC:\Perl64\lib C:\Perl +64\lib\ExtUtils\xsubpp -typemap C:\Perl64\lib\ExtUtils\typemap -type +map pe cl -c -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN32 - +D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZE - +DPRIVL GuiTest.cpp GuiTest.xs(135) : warning C4267: '=' : conversion from 'size_t' to 'in +t', possible loss of data GuiTest.xs(153) : warning C4244: 'initializing' : conversion from 'WPA +RAM' to 'int', possible loss of data GuiTest.xs(154) : warning C4244: 'initializing' : conversion from 'LPA +RAM' to 'int', possible loss of data GuiTest.xs(159) : warning C4244: 'initializing' : conversion from 'WPA +RAM' to 'int', possible loss of data GuiTest.xs(160) : warning C4244: 'initializing' : conversion from 'LPA +RAM' to 'BOOL', possible loss of data GuiTest.xs(174) : warning C4244: 'initializing' : conversion from 'LPA +RAM' to 'BOOL', possible loss of data GuiTest.xs(264) : warning C4996: 'sprintf': This function or variable +may be unsafe. Consider using sprintf_s instead. To disable deprecati +on, us C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +stdio.h(366) : see declaration of 'sprintf' GuiTest.xs(274) : warning C4244: 'initializing' : conversion from 'WPA +RAM' to 'int', possible loss of data GuiTest.xs(278) : warning C4244: 'initializing' : conversion from 'WPA +RAM' to 'int', possible loss of data GuiTest.xs(589) : warning C4996: 'sprintf': This function or variable +may be unsafe. Consider using sprintf_s instead. To disable deprecati +on, us C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +stdio.h(366) : see declaration of 'sprintf' GuiTest.xs(609) : warning C4244: 'initializing' : conversion from 'LRE +SULT' to 'int', possible loss of data GuiTest.xs(1098) : warning C4244: 'initializing' : conversion from 'LR +ESULT' to 'int', possible loss of data GuiTest.xs(1115) : warning C4244: '=' : conversion from 'LRESULT' to ' +int', possible loss of data GuiTest.xs(1152) : warning C4244: '=' : conversion from 'LRESULT' to ' +int', possible loss of data GuiTest.xs(1410) : warning C4244: 'initializing' : conversion from 'LR +ESULT' to 'int', possible loss of data GuiTest.xs(1430) : warning C4244: 'initializing' : conversion from 'LR +ESULT' to 'int', possible loss of data GuiTest.xs(1460) : warning C4244: '=' : conversion from 'LRESULT' to ' +int', possible loss of data GuiTest.xs(1473) : warning C4244: 'initializing' : conversion from 'LR +ESULT' to 'int', possible loss of data GuiTest.xs(1510) : warning C4267: '=' : conversion from 'size_t' to 'i +nt', possible loss of data GuiTest.xs(1569) : warning C4996: 'strnicmp': The POSIX name for this +item is deprecated. Instead, use the ISO C++ conformant name: _strnic +mp. Se C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +string.h(217) : see declaration of 'strnicmp' GuiTest.xs(1753) : warning C4244: '=' : conversion from 'IV' to 'LONG' +, possible loss of data cl -c -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN32 - +D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZE - +DPRIVL DibSect.cpp DibSect.cpp(120) : warning C4334: '<<' : result of 32-bit shift implic +itly converted to 64 bits (was 64-bit shift intended?) DibSect.cpp(230) : warning C4996: 'fopen': This function or variable m +ay be unsafe. Consider using fopen_s instead. To disable deprecation, + use _ C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +stdio.h(237) : see declaration of 'fopen' Running Mkbootstrap for Win32::GuiTest () C:\perl64\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Gui +Test.bs C:\perl64\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists( +'NAME'=>\"Win32::GuiTest\", 'DLBASE' => 'GuiTest', 'DL_FUNCS' => { } +, 'FUN link -out:blib\arch\auto\Win32\GuiTest\GuiTest.dll -dll -nolog +o -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"C:\Perl64\lib\CO +RE" - Creating library blib\arch\auto\Win32\GuiTest\GuiTest.lib and objec +t blib\arch\auto\Win32\GuiTest\GuiTest.exp Generating code Finished generating code if exist blib\arch\auto\Win32\GuiTest\GuiTest.dll.manifest mt +-nologo -manifest blib\arch\auto\Win32\GuiTest\GuiTest.dll.manifest - +output if exist blib\arch\auto\Win32\GuiTest\GuiTest.dll.manifest del + blib\arch\auto\Win32\GuiTest\GuiTest.dll.manifest C:\perl64\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bli +b\arch\auto\Win32\GuiTest\GuiTest.dll C:\perl64\bin\perl.exe -MExtUtils::Command -e cp -- GuiTest.bs + blib\arch\auto\Win32\GuiTest\GuiTest.bs C:\perl64\bin\perl.exe -MExtUtils::Command -e chmod -- 644 bli +b\arch\auto\Win32\GuiTest\GuiTest.bs [13:21:35.09] C:\Perl64\packages\Win32-GuiTest-1.60>nmake test Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. C:\perl64\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_ha +rness(0, 'blib\lib', 'blib\arch')" t/*.t t/01_basic.t ..... ok t/02_calc.t ...... skipped: this test is phased out t/03_cpl.t ....... ok t/04_std.t ....... ok t/05_which.t ..... ok t/06_sendkeys.t .. ok All tests successful. Files=6, Tests=72, 8 wallclock secs ( 0.09 usr + 0.03 sys = 0.13 CP +U) Result: PASS

      If there are any specific tests you want run for comparison purposes ...


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

      The start of some sanity?