2015-01-01 84 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