[#1] cURL - undefined reference
Zainteresował mnie ostatnio cURL, jednak mam problem z poprawnym skompilowaniem nawet najprostszych programów z tego pakietu. Próby przeprowadzam pod MOSem 2.4 ze ściągniętym pakietem developerskim. cURL instaluję poprzez skopiowanie katalogu local z archiwum curl do katalogu GG u mnie na dysku. Nie wiem czy potrzebna jest jeszcze jakaś dodatkowa konfiguracja, ale przy próbie kompilacji przykładowego pliku simple.c z archiwum cURL, dostaję takie wyniki:
[b]$ gcc -o ram:simple ram:simple.c -lcurl[/b]

/gg/lib/libcurl.a(ldap.o): In function `DynaOpen':
ldap.o(.text+0x3c): undefined reference to `dlopen'
ldap.o(.text+0x64): undefined reference to `dlopen'
/gg/lib/libcurl.a(ldap.o): In function `DynaClose':
ldap.o(.text+0xb8 ): undefined reference to `dlclose'
ldap.o(.text+0xd4): undefined reference to `dlclose'
/gg/lib/libcurl.a(ldap.o): In function `DynaGetFunction':
ldap.o(.text+0x118 ): undefined reference to `dlsym'
collect2: ld returned 1 exit status

[b]$gcc -o ram:simple ram:simple.c -lcurl -lcrypto[/b]

/gg/ppc-morphos/bin/ld: cannot open -lcrypto: No such file or directory
collect2: ld returned 1 exit status


co może być nie teges ?

Za wszelkie sugestie będę wdzięczny!

[#2] Re: cURL - undefined reference

@MarX, post #1

nie wiem po jakiego grzyba ktos kompilowal ta biblioteke z suportem dla libdl. gdzie ja sciagales? na szybkiego mozesz zassac sobie libdl (wersja minimalistyczna) z http://bigfoot.morphos-team.net/files/libdl.lha
poza tym 1) nie linkuj z libcrypto jezeli nie masz takiej bilioteki 2)dodaj -noixemul do opcji kompilacji (najpierw upewnij sie jak zostala skompilowana libcurl. moze jest w readme. nie wiem).

ps. jak zlapiesz mnie dzisiaj na ircu okolo 17 (przed 18 ) to podrzuce ci libcurl ktorego uzywam.

[#3] Re: cURL - undefined reference

@MarX, post #1

Cześć.
Wiem że temat stary, ale odgrzewam bo wczoraj znowu miałem ten "problem", a tak jak mi teraz, może się ta informacja komuś przydać jeszcze kiedyś. Jakiś czas temu znałem jego rozwiązanie ale uleciało mi z głowy :) Ostatnio zacząłem programować z curl i problem powrócił.
Aby kompilacja (linkowanie konkretnie) się udała należy użyc opcji -ldl aby dolinkować brakujące funkcje, których wymaga curl. Oczywiście trzeba też mieć odpowiednią bibliotekę w gg/libs (tam gdzie linka dał Kiero jeszcze jest).
U mnie wygląda to tak (moja wersja curl wymaga 4 innych libsów):
gcc program.cpp -lcurl -lssl -lcrypto -lz -ldl

Ostatnia aktualizacja: 31.05.2013 10:12:19 przez virago
[#4] Re: cURL - undefined reference

@virago, post #3

Ciekawe, bo ja nigdy nie musiałem linkować z dl.
Pewnie kwestia wyłączenia podczas konfiguracji.

BTW posiada ktoś wersję dla 68k ?

Ostatnia aktualizacja: 23.06.2013 11:52:32 przez jarrro
[#5] Re: cURL - undefined reference

@jarrro, post #4

http://amiga.sourceforge.net/?showpackage=cURL

tutaj jest ;)

Chyba, że ktoś ma nowszą to niech się podzieli.

żeby skompilować będziesz musiał pobrać jeszcze paczki zlib i openSSL (i nie wiem czy nie coś jeszcze)
[#6] Re: cURL - undefined reference

@jarrro, post #4

Posiadam 3 systemy na których mam gcc. Na Morphosie nie muszę uzywać -ldl. Wersje klasykową biblioteki mam też na Amithlonie i tez nie muszę tam linkować z dl. Natomiast w domu na A1200 (os31), musze dodać -ldl bo wywali komunikaty jak w komentarzu nr 1.
Nie wnikam już dlaczego tak jest bo się kiedyś umęczyłęm z poprawnym zestawieniem tych bibliotek i teraz wazne tylko że działa. Pewnie między wersjami jest różnica w numerkach (albo curl jest ten sam a różnica w wersji ssl jest).
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem