View mode: basic / threaded / horizontal-split · Log in · Help
October 20, 2012
Using std.net.curl on Ubuntu 12.04 32bit - linker errors
My problem seems to be the same as the one that popped up here
(http://stackoverflow.com/questions/10095150/std-net-curl-linker-errors-in-linux)
2 and half years ago. I have to link manually in order to use
std.net.curl. I mainly posting here to ask whether there is a
solution for this in sight or something. Not that it would be a
major problem - one additional line in the makefile - but it
feels bad nevertheless.

Just for demonstration:

import std.string;
import std.stdio;
import std.net.curl;

void main() {
	string html = cast(string)get("http://www.dlang.org");
	writeln(html);
}

dmd main.d -c -o main
gcc main.o -o main -m32 -Xlinker -L/usr/lib -Xlinker -L/usr/lib64
-Xlinker --no-warn-search-mismatch -Xlinker --export-dynamic
-lphobos2 -lpthread -lm -lrt -lcurl

works, whereas

dmd main.d

creates a whole bunch of errors like

"/usr/lib/i386-linux-gnu/libphobos2.a(curl.o): In function
`_D3std3net4curl4Curl19_sharedStaticCtor28FZv':
std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticCtor28FZv+0x6):
undefined reference to `curl_global_init'"

So yeah, is there something done regarding this long known error,
should I post a bugreport somewhere or anything?

regards.
October 20, 2012
Re: Using std.net.curl on Ubuntu 12.04 32bit - linker errors
Al 20/10/12 13:15, En/na hllnll ha escrit:
> My problem seems to be the same as the one that popped up here
> (http://stackoverflow.com/questions/10095150/std-net-curl-linker-errors-in-linux)
> 2 and half years ago. I have to link manually in order to use
> std.net.curl. I mainly posting here to ask whether there is a
> solution for this in sight or something. Not that it would be a
> major problem - one additional line in the makefile - but it
> feels bad nevertheless.
> 
> Just for demonstration:
> 
> import std.string;
> import std.stdio;
> import std.net.curl;
> 
> void main() {
>     string html = cast(string)get("http://www.dlang.org");
>     writeln(html);
> }
> 
> dmd main.d -c -o main
> gcc main.o -o main -m32 -Xlinker -L/usr/lib -Xlinker -L/usr/lib64
> -Xlinker --no-warn-search-mismatch -Xlinker --export-dynamic
> -lphobos2 -lpthread -lm -lrt -lcurl
> 
> works, whereas
> 
> dmd main.d
> 
> creates a whole bunch of errors like
> 
> "/usr/lib/i386-linux-gnu/libphobos2.a(curl.o): In function
> `_D3std3net4curl4Curl19_sharedStaticCtor28FZv':
> std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticCtor28FZv+0x6):
> undefined reference to `curl_global_init'"
> 
> So yeah, is there something done regarding this long known error,
> should I post a bugreport somewhere or anything?
> 
> regards.
> 

$ dmd -L-lphobos2 -L-lcurl main.d

BTW, How to tell dmd to pass a linker flag at the end?

Regards,
-- 
Jordi Sayol
Top | Discussion index | About this forum | D home