Opened 14 years ago

Closed 9 years ago

#3186 closed defect (invalid)

Use of perl bindings with MingW failed after successful building

Reported by: ghuby Owned by: Ari Jolma
Priority: normal Milestone:
Component: PerlBindings Version: 1.6.2
Severity: blocker Keywords:
Cc:

Description

I experience some troubles building perl bindings on MingW. Here is my config :

Windows XP; MingW 5.1.6 + MSys; Gdal1.6.2 sources from website; ActivePerl 5.10;

I successfully built gdal library using MingW. Then I build perl bindings :

perl Makefile.pl -> everything looks fine; dmake -> no error message; dmake test -> error message : <PerlPath>\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/gdal.... # Failed test 'use Geo::GDAL;' # at t/gdal.t line 2. # Tried to use 'Geo::GDAL'. # Error: Can't load '<Gdal_source_path>\swig\perl\blib\arch/auto/Geo/OGR/OGR.dll' for module Geo::OGR: load_file: Access to this memory location is not valid at <PerlPath>/lib/DynaLoader.pm line 202. # at <Gdal_source_path>\swig\perl\blib\lib/Geo/OGR.pm line 12 # Compilation failed in require at <Gdal_source_path>\swig\perl\blib\lib/Geo/GDAL.pm line 571. # BEGIN failed--compilation aborted at t/gdal.t line 2. # Compilation failed in require at (eval 3) line 2. # BEGIN failed--compilation aborted at (eval 3) line 2. Name "swig_runtime_data::type_pointer3" used only once: possible typo at <PerlPath>/lib/DynaLoader.pm line 225. Undefined subroutine &Geo::GDAL::GetDriver called at t/gdal.t line 57. # Looks like you failed 1 test of 1.

The "<Gdal_source_path>\swig\perl\blib\arch/auto/Geo/OGR/OGR.dll" file successfully pass dependency walker test.

Same problem with daily snapshot of 2009.10.13

Change History (4)

comment:1 by ghuby, 14 years ago

I experience some troubles building perl bindings on MingW. Here is my config :

Windows XP; MingW 5.1.6 + MSys; Gdal1.6.2 sources from website; ActivePerl 5.10;

I successfully built gdal library using MingW. Then I build perl bindings :

perl Makefile.pl -> everything looks fine; dmake -> no error message; dmake test -> error message :

<PerlPath>\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/gdal....
#   Failed test 'use Geo::GDAL;'
#   at t/gdal.t line 2.
#     Tried to use 'Geo::GDAL'.
#     Error:  Can't load '<Gdal_source_path>\swig\perl\blib\arch/auto/Geo/OGR/OGR.dll' for module Geo::OGR: load_file: Access to this memory location is not valid at <PerlPath>/lib/DynaLoader.pm line 202.
#  at <Gdal_source_path>\swig\perl\blib\lib/Geo/OGR.pm line 12 # Compilation failed in require at <Gdal_source_path>\swig\perl\blib\lib/Geo/GDAL.pm line 571.
# BEGIN failed--compilation aborted at t/gdal.t line 2.
# Compilation failed in require at (eval 3) line 2.
# BEGIN failed--compilation aborted at (eval 3) line 2.
Name "swig_runtime_data::type_pointer3" used only once: possible typo at <PerlPath>/lib/DynaLoader.pm line 225.
Undefined subroutine &Geo::GDAL::GetDriver called at t/gdal.t line 57.
# Looks like you failed 1 test of 1.

The "<Gdal_source_path>\swig\perl\blib\arch/auto/Geo/OGR/OGR.dll" file successfully pass dependency walker test.

comment:2 by Ari Jolma, 14 years ago

My first guess is the problem is your use of ActivePerl, which is not built with MinGW. You should not mix compilers when building compiled modules for Perl.

Can you try with a MinGW built Perl? Compiling one is not difficult and there are pre-built distributions. Have you looked at http://trac.osgeo.org/geoinformatica/wiki/BuildWithMingw

I have not built Geo::GDAL for a while, I'll test later today (Finnish time).

comment:3 by Jukka Rahkonen, 9 years ago

If ajolma does not say anything else within a few days I plan to close this ticket as invalid (mixture of compilers).

comment:4 by Ari Jolma, 9 years ago

Resolution: invalid
Status: newclosed

You should use the same compiler for modules as for the Perl itself.

Note: See TracTickets for help on using tickets.