我試圖在使用DMD 2.058的32位Ubuntu Linux(11.10 Ocelot)上使用std.net.curl。Linux中std.net.curl鏈接器錯誤
當我建(dmd source.d
)我得到:
/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]
我加-L-lcurl
我的命令行(完整的命令:dmd source.d -L-lcurl
),但我得到完全相同的結果。我安裝了libcurl4-openssl。我可以在這臺電腦上建立一個simple C curl程序而不會出現問題(gcc simple.c -lcurl
)。我不知道從哪裏看這裏來弄清楚。
更新:這是根據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
嘗試使用'-v'('dmd -v source.d -L -lcurl')運行以查看鏈接器是如何被調用的。 – kennytm 2012-04-10 19:30:18
@KennyTM更新後的信息。 – eco 2012-04-10 19:41:05