【问题标题】:Compiling WWW::Curl on ActivePerl在 ActivePerl 上编译 WWW::Curl
【发布时间】:2011-07-20 22:35:43
【问题描述】:

我正在(拼命地)尝试在我的 activeperl 机器上构建/安装最新版本的 WWW::Curl(我稍后会解释为什么我不使用 PPM)

我必须按照此处的说明进行一些修改: http://cpansearch.perl.org/src/SZBALINT/WWW-Curl-4.15/README.Win32

我还必须更改以下行:

发件人:

open(H_IN, "-|" "gcc", "$curl_h") and $has_cpp++;

收件人:

open(H_IN, "gcc $curl_h") and $has_cpp++;

我终于让 perl Makefile.PL 工作了,但现在,当我运行 nmake 时,我得到以下信息:

Missing right curly or square bracket at -e line 1, at end of line
Execution of -e aborted due to compilation errors.
NMAKE:  fatal error U1077:  'C;|windows\system32\cmd.exe' : return code '0xff'
Stop.

现在,我尝试编译它而不是使用 u.winnipeg 提供的 PPM 的原因是因为 PPM 似乎不支持 SSL 事务(我得到“libcurl:ssl disabled”)现在,如果任何人都可以告诉我如何让 ssl 在这个 PPM 上运行,我非常乐意使用它。

非常感谢您

【问题讨论】:

  • 尝试运行NMAKE /N(显示但不执行命令)并查看导致错误的命令是如何运行的。
  • 您的open 通话中不需要管道吗? "-|","gcc $curl_h""|gcc $curl_h"?
  • open(H_IN, "-|" "gcc", "$curl_h") and $has_cpp++; 缺少逗号 - 应该是 open(H_IN, "-|", "gcc", "$curl_h") and $has_cpp++;

标签: perl windows-7 libcurl nmake activeperl


【解决方案1】:

我猜原来是

open(H_IN, "-|", "gcc", "$curl_h")

您必须更改它的原因是因为没有人能够在 Windows 中实现功能。改成

open(H_IN, qq{gcc "$curl_h" |})

为您的编译器使用正确的名称和语法。

【讨论】:

    【解决方案2】:

    好吧,我终于弄明白了,感谢所有回复的人。有很多事情我必须改变。

    使用http://cpansearch.perl.org/src/SZBALINT/WWW-Curl-4.15/README.Win32 作为指导:

    我在上面所做的打开 cmd 工作正常。但是,我确实使用了 ikegami、reinierpost 和 mob 返回的建议。

    使用 nmake /n(根据 socket puppet 的建议),它打印出所有正在执行的 perl 语句。我把这个输出放到一个 .bat 文件中,并更正了 perl 语法。

    我更改了

    的所有实例
    pm_to_blib({{@ARGV}
    

    pm_to_blib({@ARGV}
    

    (令人不安的是这些被退回)

    然后,我必须将 libcurl 库链接到实例化 g++ 的每一行,这些行没有正确链接。在我添加了这些引用之后,其他一切都很顺利。

    这些已添加:

    C:\lc\curl\lib\libcurl.a C:\lc\curl\lib\libcurldll.a
    

    现在,WWW::Curl 正在我的系统上愉快地运行。

    至于使用PPM版本,正是因为SSL我不得不升级。 WWW::Curl 的最新版本是 4.15,ppm 版本是(我相信)3.02。

    【讨论】:

    • 嘿,保罗,我知道这是旧的,但只是想让你知道我遇到了同样的问题。使用 dmake 而不是 nmake,我的时间要容易得多。
    【解决方案3】:

    首先,很多人不知道你可以use ppm to install MinGW to use cpan to install modules

    其次,如果你的模块提供的 libcurl 没有做 SSL,你可以尝试用suitable SSL version from the download page 替换它。这很可能会失败,但你也可能很幸运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      相关资源
      最近更新 更多