【问题标题】:Undefined symbol building WWW::Curl::Easy Perl module on AIX 5.3在 AIX 5.3 上构建未定义的符号 WWW::Curl::Easy Perl 模块
【发布时间】:2023-04-02 12:05:01
【问题描述】:

我正在尝试在 AIX 5.3 上安装 WWW::Curl::Easy Perl 模块。我在 /usr/local 中安装了 curl(从源代码)。在尝试构建 Perl 模块时,我得到了这个:

$ perl Makefile.PL 在 /usr/local/include/curl/curl.h 中找到 curl.h 为您的 libcurl 版本构建 curlopt-constants.c 为您的 libcurl 版本构建 Easy.pm 常量 注意(可能无害):未找到 -lcurl 的库 为 WWW::Curl 编写 Makefile

我认为“可能无害”的错误并不是那么无害。

$ 制作 跳过 blib/lib/WWW/Curl/Form.pm(未更改) 跳过 blib/lib/WWW/Curl.pm(不变) 跳过 blib/lib/WWW/Curl/Multi.pm(未更改) 跳过 blib/lib/WWW/Curl/Easy.pm(不变) cc_r -c -I/usr/local/include -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES -qlonglong -O -DVERSION=\"3.02\" -DXS_VERSION=\"3.02\ " "-I/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE" Curl.c “Curl.xs”,第 681.36 行:1506-280 (W) 不允许在类型“unsigned long*”和“int*”之间分配函数参数。 为 WWW::Curl () 运行 Mkbootstrap chmod 644 卷曲.bs rm -f blib/arch/auto/WWW/Curl/Curl.so ld -bhalt:4 -bM:SRE -bI:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/perl.exp -bE:Curl.exp -bnoentry -lpthreads -lc_r 卷曲。 o -o blib/arch/auto/WWW/Curl/Curl.so ld:0711-317 错误:未定义的符号:.curl_global_init ld:0711-317 错误:未定义的符号:.curl_multi_perform ld:0711-317 错误:未定义的符号:.curl_multi_fdset ld:0711-317 错误:未定义的符号:.curl_multi_remove_handle ld:0711-317 错误:未定义符号:.curl_multi_add_handle ld:0711-317 错误:未定义的符号:.curl_global_cleanup ld:0711-317 错误:未定义的符号:.curl_easy_getinfo ld:0711-317 错误:未定义的符号:.curl_easy_perform ld:0711-317 错误:未定义符号:.curl_slist_free_all ld:0711-317 错误:未定义的符号:.curl_slist_append ld:0711-317 错误:未定义符号:.curl_easy_setopt ld:0711-317 错误:未定义符号:.curl_version ld:0711-317 错误:未定义的符号:.curl_multi_cleanup ld:0711-317 错误:未定义符号:.curl_multi_init ld:0711-317 错误:未定义符号:.curl_easy_cleanup ld:0711-317 错误:未定义的符号:.curl_easy_duphandle ld:0711-317 错误:未定义符号:.curl_easy_init ld: 0711-345 使用 -bloadmap 或 -bnoquiet 选项获取更多信息。 make:最后一个命令的错误代码是 8。 停止。

我怀疑这对于熟悉 C 编译器和链接器的人来说是一件相当简单的事情。感谢任何帮助。

【问题讨论】:

    标签: perl compiler-construction linker aix perl-module


    【解决方案1】:

    ld 行中似乎缺少 libcurl 的链接器参数。这是curl-config --libs 的输出,应该类似于-L/opt/local/lib -lcurl。确保/opt/local/lib/libcurl.so 存在(其中/opt/local/lib-L 之后的任何内容)。

    您可能有 libcurl 标头,但没有共享库。

    【讨论】:

    • 谢谢,这正是我所需要的。我必须将 -L/usr/local/lib 和 -lcurl 添加到 makefile 中的 LDDLFLAGS 变量中。
    • 他们应该已经为你添加了。 curl-config 丢失还是 curl-config --libs 没有返回任何东西?如果没有,您的 libcurl 安装已损坏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 2017-03-16
    • 2015-07-11
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    相关资源
    最近更新 更多