2015-01-01 73 views
1

我試圖將libcurl鏈接到我的程序,但鏈接器告訴我一些錯誤。 我檢查過選項「-lcurl」已被使用。我也檢查過libcurl是否正確安裝。 我嘗試的命令是:(dlang)如何使用gdc鏈接libcurl?

gdc myprogram.d -o myprogram -lcurl 

和鏈接告訴我下面的錯誤:

/usr/lib/gcc/x86_64-linux-gnu/4.8/libgphobos2.a(curl.o): In function `_D3std3net4curl4Curl18_sharedStaticCtor1FZv': 
/build/buildd/gcc-4.8-4.8.2/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3432: undefined reference to `curl_global_init' 
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgphobos2.a(curl.o): In function `_D3std3net4curl4Curl8shutdownMFZv': 
/build/buildd/gcc-4.8-4.8.2/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3561: undefined reference to `curl_easy_cleanup' 
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgphobos2.a(curl.o): In function `shutdown': 
/build/buildd/gcc-4.8-4.8.2/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3561: undefined reference to `curl_easy_cleanup' 
/build/buildd/gcc-4.8-4.8.2/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3561: undefined reference to `curl_easy_cleanup' 
/build/buildd/gcc-4.8-4.8.2/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3561: undefined reference to `curl_easy_cleanup' 
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgphobos2.a(curl.o): In function `_D3std3net4curl4HTTP4Impl6__dtorMFZv': 
/build/buildd/gcc-4.8-4.8.2/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:2033: undefined reference to `curl_slist_free_all' 

有一些情況下使用官方的編譯器DMD,但我無法找到與GDC的情況。 任何想法?

(Ubuntu的14.02 LTS AMD64)

+1

嘗試在命令行的開始處放置'-lcurl',使'gdc -lcurl myprogram.d'並查看會發生什麼。我之前看到過一個bug,它與鏈接的順序有關,這可能會有所幫助。 –

+0

我嘗試了你寫的,但是同樣的錯誤發生了。發生了什麼!?!? – carrot031

回答

1

你已經安裝了

libcurl4-gnutls-dev 

如果是試試這個:

gdc -lcurl-gnutls myprogram.d -o myprogram 
+0

謝謝你的回答,但它不起作用......結果是一樣的。我試圖用官方編譯器dmd和選項「-L-lphobos2 -L-lcurl」來做同樣的事情,它工作。 – carrot031

1

問題是爲了計劃如何鏈接,在Ubuntu是重要的是在libgphobos後添加捲曲,所以這可以工作:

gdc myprogram.d /usr/lib/gcc/x86_64-linux-gnu/4.8/libgphobos2.a -o myprogram `curl-config --libs` 

some more details