2010-07-07 2 views
0

Я пытаюсь получить модуль WWW :: Curl :: Easy Perl, установленный на AIX 5.3. У меня есть завиток, установленный (из источника) в/usr/local. При попытке создать модуль Perl, я получаю это:Неопределенное построение символов WWW :: Curl :: Модуль Easy Perl на AIX 5.3

 
$ perl Makefile.PL 
Found curl.h in /usr/local/include/curl/curl.h 
Building curlopt-constants.c for your libcurl version 
Building Easy.pm constants for your libcurl version 
Note (probably harmless): No library found for -lcurl 
Writing Makefile for WWW::Curl 

Я думаю о «вероятно безвредной» ошибке не так безобиден.

 
$ make 
Skip blib/lib/WWW/Curl/Form.pm (unchanged) 
Skip blib/lib/WWW/Curl.pm (unchanged) 
Skip blib/lib/WWW/Curl/Multi.pm (unchanged) 
Skip blib/lib/WWW/Curl/Easy.pm (unchanged) 
     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", line 681.36: 1506-280 (W) Function argument assignment between types "unsigned long*" and "int*" is not allowed. 
Running Mkbootstrap for WWW::Curl() 
     chmod 644 Curl.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 Curl.o -o blib/arch/auto/WWW/Curl/Curl.so    
ld: 0711-317 ERROR: Undefined symbol: .curl_global_init 
ld: 0711-317 ERROR: Undefined symbol: .curl_multi_perform 
ld: 0711-317 ERROR: Undefined symbol: .curl_multi_fdset 
ld: 0711-317 ERROR: Undefined symbol: .curl_multi_remove_handle 
ld: 0711-317 ERROR: Undefined symbol: .curl_multi_add_handle 
ld: 0711-317 ERROR: Undefined symbol: .curl_global_cleanup 
ld: 0711-317 ERROR: Undefined symbol: .curl_easy_getinfo 
ld: 0711-317 ERROR: Undefined symbol: .curl_easy_perform 
ld: 0711-317 ERROR: Undefined symbol: .curl_slist_free_all 
ld: 0711-317 ERROR: Undefined symbol: .curl_slist_append 
ld: 0711-317 ERROR: Undefined symbol: .curl_easy_setopt 
ld: 0711-317 ERROR: Undefined symbol: .curl_version 
ld: 0711-317 ERROR: Undefined symbol: .curl_multi_cleanup 
ld: 0711-317 ERROR: Undefined symbol: .curl_multi_init 
ld: 0711-317 ERROR: Undefined symbol: .curl_easy_cleanup 
ld: 0711-317 ERROR: Undefined symbol: .curl_easy_duphandle 
ld: 0711-317 ERROR: Undefined symbol: .curl_easy_init 
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. 
make: The error code from the last command is 8. 


Stop. 

Я подозреваю, что это довольно простая вещь для тех, кто знаком с компиляторами и компоновщиками C. Цените любую помощь.

ответ

0

Похоже, что аргументы компоновщика для libcurl отсутствуют в строке ld. Это результат curl-config --libs и должен выглядеть примерно как -L/opt/local/lib -lcurl. Убедитесь, что существует /opt/local/lib/libcurl.so (где /opt/local/lib - это все, что приходит после -L).

У вас могут быть заголовки libcurl, но не общая библиотека.

+0

Спасибо, это именно то, что мне нужно. Мне пришлось добавить -L/usr/local/lib и -lcurl в переменную LDDLFLAGS в make-файле. – eil

+0

Они должны были быть добавлены для вас. Является ли 'curl-config' отсутствующим или' curl-config -libs' ничего не возвращает? Если нет, у вас есть сломанная установка libcurl. – Schwern

Смежные вопросы