Sto provando a utilizzare std.net.curl su Ubuntu Linux a 32 bit (11.10 Ocelot) utilizzando DMD 2.058.std.net.curl errori di linker in Linux
Quando costruisco (dmd source.d
) ottengo:
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../lib/libphobos2.a(curl.o): In function `_D3std3net4curl4Curl19_sharedStaticCtor30FZv':
std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticCtor30FZv+0x6): undefined reference to `curl_global_init'
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../lib/libphobos2.a(curl.o): In function `_D3std3net4curl4Curl19_sharedStaticDtor31FZv':
std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticDtor31FZv+0x4): undefined reference to `curl_global_cleanup'
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../lib/libphobos2.a(curl_12fd_140.o): In function `_D3std3net4curl4HTTP4Impl6__dtorMFZv':
std/net/curl.d:(.text._D3std3net4curl4HTTP4Impl6__dtorMFZv+0x12): undefined reference to `curl_slist_free_all'
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../lib/libphobos2.a(curl_12fd_140.o): In function `_D3std3net4curl4HTTP3dupMFZS3std3net4curl4HTTP':
std/net/curl.d:(.text._D3std3net4curl4HTTP3dupMFZS3std3net4curl4HTTP+0x53): undefined reference to `curl_slist_append'
[snip]
ho aggiunto -L-lcurl
alla mia linea di comando (comando completo: dmd source.d -L-lcurl
), ma ottengo lo stesso risultato esatto. Ho installato libcurl4-openssl. Posso creare un programma simple C curl su questo computer senza problemi (gcc simple.c -lcurl
). Non sono sicuro da dove guardare da qui per capirlo.
Aggiornamento: Ecco come il linker viene richiamato in base alle dmd -v
:
gcc source.o -o source -m32 -lcurl -Xlinker -L/usr/lib -Xlinker -L/usr/lib64 -Xlinker --no-warn-search-mismatch -Xlinker --export-dynamic -lphobos2 -lpthread -lm -lrt
Prova a eseguire '-v' (' dmd -v source.d -L-lcurl') per vedere come viene richiamato il linker. – kennytm
@KennyTM Post aggiornato con informazioni. – eco