【问题标题】:Cannot force install GD with cpan/cpanm无法使用 cpan/cpanm 强制安装 GD
【发布时间】:2014-02-22 01:33:42
【问题描述】:

我已经查看并看到发布了类似的问题,但无法让 GD 正常工作。 安装了 libgd 和 libpng...

出现以下错误
clang -c  -I/usr/local/include -arch i386 -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -I/usr/local/include -Wformat=0 -Os   -DVERSION=\"2.50\" -DXS_VERSION=\"2.50\"  "-I/System/Library/Perl/5.12/darwin-thread-multi-2level/CORE"  -DHAVE_FT -DHAVE_GIF -DHAVE_ANIMGIF -DVERSION_33 -DHAVE_UNCLOSEDPOLY -DHAVE_FTCIRCLE GD.c
GD.xs:997:18: warning: implicit declaration of function 'gdImageGifAnimBeginPtr' is invalid in C99 [-Wimplicit-function-declaration]
        data = (void *) gdImageGifAnimBeginPtr(image,&size,globalcm,loops);
                        ^
GD.xs:1022:18: warning: implicit declaration of function 'gdImageGifAnimAddPtr' is invalid in C99 [-Wimplicit-function-declaration]
        data = (void *) gdImageGifAnimAddPtr(image,&size,localcm,leftofs,topofs,delay,disposal,previm);
                        ^
GD.xs:1041:18: warning: implicit declaration of function 'gdImageGifAnimEndPtr' is invalid in C99 [-Wimplicit-function-declaration]
        data = (void *) gdImageGifAnimEndPtr(&size);
                        ^
GD.xs:1598:3: warning: implicit declaration of function 'gdImageOpenPolygon' is invalid in C99 [-Wimplicit-function-declaration]
                gdImageOpenPolygon(image,polyptr,length,color);
                ^
GD.xs:2192:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
            if (value = hv_fetch(hash,"linespacing",strlen("linespacing"),0)) {
                ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GD.xs:2192:16: note: place parentheses around the assignment to silence this warning
            if (value = hv_fetch(hash,"linespacing",strlen("linespacing"),0)) {
                      ^
                (                                                           )

...

2 warnings generated.
rm -f blib/arch/auto/GD/GD.bundle
LD_RUN_PATH="/usr/lib:/usr/local/lib" clang -mmacosx-version-min=10.8  -arch i386 -arch x86_64 -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector GD.o  -o blib/arch/auto/GD/GD.bundle    \
       -L/usr/local/lib -lz -liconv -lgd    \

ld: warning: ignoring file /usr/local/lib/libgd.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libgd.dylib
chmod 755 blib/arch/auto/GD/GD.bundle
/usr/bin/perl -MExtUtils::Command::MM -e 'cp_nonempty' -- GD.bs blib/arch/auto/GD/GD.bs 644
/usr/bin/perl "-Iblib/arch" "-Iblib/lib" bdf_scripts/bdf2gdfont.PLS bdf_scripts/bdf2gdfont.pl
Extracting bdf2gdfont.pl (with variable substitutions)
cp bdf_scripts/bdf2gdfont.pl blib/script/bdf2gdfont.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/bdf2gdfont.pl
Manifying blib/man1/bdf2gdfont.pl.1
Manifying blib/man3/GD.3pm
Manifying blib/man3/GD::Image.3pm
Manifying blib/man3/GD::Polygon.3pm
Manifying blib/man3/GD::Polyline.3pm
Manifying blib/man3/GD::Simple.3pm
Running Mkbootstrap for GD ()
chmod 644 GD.bs
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
Testing using gif support.
t/GD.t ........ 
Failed 6/12 subtests 
    (less 3 skipped subtests: 3 okay)
t/Polyline.t .. ok

Test Summary Report
-------------------
t/GD.t      (Wstat: 0 Tests: 12 Failed: 6)
  Failed tests:  2-7
Files=2, Tests=13,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.10 cusr  0.01 csys =  0.14 CPU)
Result: FAIL
Failed 1/2 test programs. 6/13 subtests failed.
make: *** [test_dynamic] Error 255
-> FAIL Installing GD failed. See /Users/lraven/.cpanm/work/1391048234.74068/build.log for details. Retry with --force to force install it.
Expiring 19 work directories.

我需要的所有其他模块都在安装,而不是 GD。

我使用的是 OS X 10.8.5、bash 版本 3.2.48、perl 版本 5.012 和 cpanm 版本 1.7

【问题讨论】:

  • 你当然已经安装了 libgd?

标签: perl gd perl-module cpan


【解决方案1】:

跟进这个 - 为了让马戏团工作,我做了以下...... 1/ 我使用 cpanm 安装了所有模块

wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib

eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
cpanm Config::General
cpanm Font::TTF
cpanm List::MoreUtils
cpanm Math::Bezier
cpanm Math::Round
cpanm Math::VecStat
cpanm Params::Validate
cpanm Readonly
cpanm Regexp::Common
cpanm Set::IntSpan 
cpanm Text::Format
cpanm Clone
cpanm GD
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile

GD 无法安装。要解决这个问题: 我从http://www.macports.org/install.php下载并安装了macports

sudo /opt/local/bin/port install gd2
sudo /opt/local/bin/port install jpeg
sudo /opt/local/bin/port install libpng
sudo /opt/local/bin/port install libgda5

我收到与 gnome 桌面相关的错误并运行 sudo /opt/local/bin/port clean gnome-desktop 然后重新安装了 libgd

最后,让 GD 到达 perl 可以找到它的位置……

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

【讨论】:

    【解决方案2】:

    在安装 GD Perl 模块之前,您必须先安装许多其他库,包括 gd 图形库本身 (libgd)、PNG 库 (libpng) 以及可选的 JPEG 和 FreeType 库。

    您可能会发现使用MacPorts 安装这些库更容易,然后您也可以从那里安装 GD - 该软件包称为 p5.14-gd(或与您的 perl 版本匹配的任何名称)

    【讨论】:

    • 非常感谢这个有用的建议,我不知道我需要单独安装它。我不再收到有关图像内容的错误,但它仍然没有正确安装。我还需要其他包吗?
    • 感谢 tangent,我已经更新了上面的错误。不幸的是,它很难破译。我问是否需要更多模块,因为我的 perl 模块中没有列出的 MExtUtils::MY 似乎有问题。这些日志文件中有很多信息,目前还不清楚错误是什么......
    • "忽略文件 /usr/local/lib/libgd.dylib,文件是为 x86_64 构建的,它不是被链接的架构 (i386)" - 看起来你没有正确安装 gd 库, 我建议你使用 MacPorts
    • 我试图避免使用 macports,因为所有使用 macports 的帮助博客都说使用 cpanm...按照您的建议,我尝试了 macports 并且能够安装 gd2 和 libgd5!我希望这类似于 gd 和 libgd ...如果您愿意帮助我完成最后一步? gd2 --version 不起作用,或“whereis gd2”。 lraven$ sudo /opt/local/bin/port installed libgda5 @5.2.2_0+db51 (active) gd2 @2.1.0_4+x11 (active) libpng @1.6.8_0 (active) 那么我现在如何让 perl 识别这些模块呢?我可以把它们放在 $PATH 中,但我找不到它们......
    • gd2 是您需要的,因此将 /opt/local/bin 和 /opt/local/sbin 添加到 $PATH。您还应该添加到您的 bash 配置文件中,请参阅 this page
    猜你喜欢
    • 2019-04-11
    • 2021-05-13
    • 2015-02-20
    • 1970-01-01
    • 2013-06-30
    • 2014-09-03
    • 2020-01-02
    • 2017-04-08
    • 2020-05-07
    相关资源
    最近更新 更多