2015-01-01 6 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의 경우를 찾을 수 없습니다. 아이디어가 있으십니까?

(우분투 14.02 LTS의 AMD64)

+1

'-lcurl'을 명령 줄의 처음에 두어'gdc -lcurl myprogram.d'를 시도해보고 무슨 일이 일어나는 지보십시오. 그 전에 링크 순서와 관련된 버그를 봤는데 도움이 될 수 있습니다. –

+0

쓴대로 시도했지만 동일한 오류가 발생했습니다. 무슨 일이 일어나고 있습니다!?!? – carrot031

답변

1

가 설치 한 마십시오

libcurl4-gnutls-dev 

예이 시도하는 경우 :

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

답변 해 주셔서 감사합니다. 그러나 작동하지 않습니다 ... 결과는 동일합니다. 나는 공식 컴파일러 dmd에서 "-L-lphobos2 -L-lcurl"옵션을 사용하여 동일한 작업을 시도했지만 작동했습니다. – carrot031

1

문제는 프로그램이 링크는 우분투에, 얼마나 주문입니다 libgphobos 뒤에 컬을 추가하는 것이 중요합니다.

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

some more details