CPAN GD module install failure using Cygwin

依然范特西╮ 提交于 2019-12-22 06:37:57

问题


I have been trying to troubleshoot why CPAN GD module fails to install using Cygwin for 2 days now. Any help is much appreciated. Thanks!

cpan install GD
Going to read '/home/xxxxxxxxxx/.cpan/Metadata'
  Database was generated on Sat, 27 Dec 2014 12:17:02 GMT
Running install for module 'GD'
Running make for L/LD/LDS/GD-2.56.tar.gz
Checksum for /home/xxxxxxxxxx/.cpan/sources/authors/id/L/LD/LDS/GD-2.56.tar.gz ok

  CPAN.pm: Going to build L/LD/LDS/GD-2.56.tar.gz

Configuring for libgd version 2.1.0.
Checking for stray libgd header files...

** WARNING: found gd.h header file in /usr/include/gd.h, but it is expected at /usr/local/include/gd.h. This may cause compile errors! **


** WARNING: found gd.h header file in /usr/include/gd.h, but it is expected at /usr/local/include/gd.h. This may cause compile errors! **
** Possible problems found **

Included Features:          GD_JPEG GD_GIF GD_GIFANIM GD_OPENPOLYGON
GD library used from:       /usr/local
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'GD' version '2.56'
Building GD
Extracting Image.pm (with variable substitutions)
gcc -I/usr/local/include -I/usr/lib/perl5/5.14/x86_64-cygwin-threads/CORE -DXS_VERSION="2.56" -DVERSION="2.56" -DHAVE_JPEG -DHAVE_GIF -c -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -fstack-protector -O3 -o lib/GD.o lib/GD.c
ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/GD/GD.bs')
g++ --shared -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--enable-auto-image-base -fstack-protector -o blib/arch/auto/GD/GD.dll lib/GD.o /usr/lib/perl5/5.14/x86_64-cygwin-threads/CORE/libperl.dll.a -L/usr/local/lib -ljpeg -lz -lgd
lib/GD.o:GD.c:(.text+0xd1b): undefined reference to `gdImageCreateFromGd2Ptr'
lib/GD.o:GD.c:(.text+0xd1b): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromGd2Ptr'
lib/GD.o:GD.c:(.text+0xeec): undefined reference to `gdImageCreateFromGd2Ptr'
lib/GD.o:GD.c:(.text+0xeec): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromGd2Ptr'
lib/GD.o:GD.c:(.text+0x1bfc): undefined reference to `gdImageCreateFromGd2Part'
lib/GD.o:GD.c:(.text+0x1bfc): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromGd2Part'
lib/GD.o:GD.c:(.text+0x39b8): undefined reference to `gdImageGd2Ptr'
lib/GD.o:GD.c:(.text+0x39b8): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageGd2Ptr'
lib/GD.o:GD.c:(.text+0x3c16): undefined reference to `gdImageGd2Ptr'
lib/GD.o:GD.c:(.text+0x3c16): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageGd2Ptr'
lib/GD.o:GD.c:(.text+0x3e4f): undefined reference to `gdImageJpegPtr'
lib/GD.o:GD.c:(.text+0x3e4f): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageJpegPtr'
lib/GD.o:GD.c:(.text+0x11ec9): undefined reference to `gdImageCreateFromJpeg'
lib/GD.o:GD.c:(.text+0x11ec9): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromJpeg'
lib/GD.o:GD.c:(.text+0x12175): undefined reference to `gdImageCreateFromJpegCtx'
lib/GD.o:GD.c:(.text+0x12175): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromJpegCtx'
collect2: error: ld returned 1 exit status
error building blib/arch/auto/GD/GD.dll from lib/GD.o at /usr/lib/perl5/5.14/ExtUtils/CBuilder/Base.pm line 310.
  LDS/GD-2.56.tar.gz
  ./Build -- NOT OK
Running Build test
  Can't test without successful make
Running Build install
  Make had returned bad status, install seems impossible

make -v
GNU Make 4.0
Built for x86_64-pc-cygwin
Copyright (C) 1988-2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

回答1:


I believe you have two versions of the GD library installed. One in /usr and one in /usr/local. It's using the header file from /usr and the shared libraries from /usr/local. The hint is this.

** WARNING: found gd.h header file in /usr/include/gd.h, but it is expected at /usr/local/include/gd.h. This may cause compile errors! **

You probably have only the GD runtime (shared library) installed in /usr/local. In desperation, GD.pm is grabbing the headers from the default location in /usr.

Try installing both the libgd3 and libgd-devel Cygwin packages and removing whatever parts of libgd is in /usr/local. In particular, make sure which gdlib-config points at /usr/bin/gdlib-config.



来源:https://stackoverflow.com/questions/27679469/cpan-gd-module-install-failure-using-cygwin

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!