curl linux

2013-09-28 Thread Alexandr Druzhinin
I use curl in my application. If I link it with -lcurl - symbols are 
undefined (libcurl3 installed), if I link with -lphobos2 - it links. So 
curl is linked with libphobos2.so? But what to do if I need static 
linking? (ubuntu 12.04 x86_64, dmd 2.063.2)


Re: curl linux

2013-09-28 Thread Jordi Sayol
On 28/09/13 10:28, Alexandr Druzhinin wrote:
 I use curl in my application. If I link it with -lcurl - symbols are 
 undefined (libcurl3 installed), if I link with -lphobos2 - it links. So curl 
 is linked with libphobos2.so? But what to do if I need static linking? 
 (ubuntu 12.04 x86_64, dmd 2.063.2)
 

To link against libcurl (-lcurl) you need to install libcurl development files. 
On Ubuntu, install one of these three packages: libcurl4-openssl-dev, 
libcurl4-gnutls-dev or libcurl4-nss-dev.

For libcurl static linking you should link against all libraries that libcurl 
depends on.

-- 
Jordi Sayol


Re: curl linux

2013-09-28 Thread Alexandr Druzhinin

28.09.2013 17:06, Jordi Sayol пишет:

On 28/09/13 10:28, Alexandr Druzhinin wrote:

I use curl in my application. If I link it with -lcurl - symbols are undefined 
(libcurl3 installed), if I link with -lphobos2 - it links. So curl is linked 
with libphobos2.so? But what to do if I need static linking? (ubuntu 12.04 
x86_64, dmd 2.063.2)



To link against libcurl (-lcurl) you need to install libcurl development files. On Ubuntu, install one of 
these three packages: libcurl4-openssl-dev, libcurl4-gnutls-dev or 
libcurl4-nss-dev.

For libcurl static linking you should link against all libraries that libcurl 
depends on.

Thank you for info. I have installed libcurl4-gnutls-dev - the same 
happens, symbols are undefined. But with -lphobos2 it links... Why 
linker don't find these symbols if libs are installed? Should I pass to 
linker some additional info in this case?


Re: curl linux

2013-09-28 Thread Jordi Sayol
On 28/09/13 14:41, Alexandr Druzhinin wrote:
 28.09.2013 17:06, Jordi Sayol пишет:
 On 28/09/13 10:28, Alexandr Druzhinin wrote:
 I use curl in my application. If I link it with -lcurl - symbols are 
 undefined (libcurl3 installed), if I link with -lphobos2 - it links. So 
 curl is linked with libphobos2.so? But what to do if I need static linking? 
 (ubuntu 12.04 x86_64, dmd 2.063.2)


 To link against libcurl (-lcurl) you need to install libcurl development 
 files. On Ubuntu, install one of these three packages: 
 libcurl4-openssl-dev, libcurl4-gnutls-dev or libcurl4-nss-dev.

 For libcurl static linking you should link against all libraries that 
 libcurl depends on.

 Thank you for info. I have installed libcurl4-gnutls-dev - the same 
 happens, symbols are undefined. But with -lphobos2 it links... Why linker 
 don't find these symbols if libs are installed? Should I pass to linker some 
 additional info in this case?
 

Can I see your full command line please?
$ dmd -lcurl 

-- 
Jordi Sayol



Re: curl linux

2013-09-28 Thread Alexandr Druzhinin

28.09.2013 20:14, Jordi Sayol пишет:


Can I see your full command line please?
$ dmd -lcurl 


I use dub, but I did rdmd version:
rdmd --build-only -I/home/drug/.dub/packages/derelict-master/import 
-I/home/drug/.dub/packages/glamour-master -version=Derelict3 
-version=gl3n -I/home/drug/.dub/packages/gl3n-master/ 
-I/home/drug/3rdparties/cairoD/src 
-I/home/drug/.dub/packages/arsd-master -version=CAIRO_HAS_PNG_FUNCTIONS 
-L-lphobos2 -L-L/home/drug/3rdparties/cairoD -L-lcairoD -L-lcairo -L-ldl 
-ofbin/geoviewer src/app.d


If I change -L-lphobos2 на -L-lcurl I get:
/usr/lib/x86_64-linux-gnu/libphobos2.a(curl.o): In function 
`_D3std3net4curl4Curl19_sharedStaticCtor34FZv':
std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticCtor34FZv+0xf): 
undefined reference to `curl_global_init'
/usr/lib/x86_64-linux-gnu/libphobos2.a(curl.o): In function 
`_D3std3net4curl4Curl19_sharedStaticDtor35FZv':
std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticDtor35FZv+0x5): 
undefined reference to `curl_global_cleanup'
/usr/lib/x86_64-linux-gnu/libphobos2.a(curl_144c_140.o): In function 
`_D3std3net4curl4HTTP4Impl6__dtorMFZv':
std/net/curl.d:(.text._D3std3net4curl4HTTP4Impl6__dtorMFZv+0x19): 
undefined reference to `curl_slist_free_all'

...

and so on. That is in this case I have static linking but curl symbols 
are not definded somehow.