在 AIX 5.3 上构建 WWW::Curl::Easy Perl 模块时未定义的符号

问题描述 投票:0回答:1

我正在尝试在 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 linker aix perl-module
1个回答
0
投票

看起来

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

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

© www.soinside.com 2019 - 2024. All rights reserved.