Trying to compile weather program

Tony via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Aug 24 21:00:24 PDT 2015


On Monday, 24 August 2015 at 06:28:34 UTC, Yazan D wrote:
> On Sun, 23 Aug 2015 16:00:16 +0000, Tony wrote:
>
>> Thanks for the replies. It compiles OK with just. However, it 
>> isn't linking:
>> 
>> /usr/bin/ld: cannot find -lcurl
>> 
>> 
>> I do have some versions of libcurl on my system:
>> 
>> /usr/lib/x86_64-linux-gnu/libcurl.so.3 
>> /usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0 
>> /usr/lib/x86_64-linux-gnu/libcurl.so.4
>> 
>> I see there is a -L option to pass things to the linker
>> 
>> -Llinkerflag   pass linkerflag to link
>> 
>> but I am not sure how to use it.
>
> I've had the same problem recently. What I did was that I ran 
> `dmd main.d
> -L-L/usr/lib/x86_64-linux-gnu/ -L-lcurl -v`. It would still 
> fail to link,
> but I can find the linking command from the verbose output. It 
> was
> something like this: `gcc main.o -o main -m64 
> -L/usr/lib/x86_64-linux-
> gnu/ -lcurl -L/usr/lib/x86_64-linux-gnu -Xlinker 
> --export-dynamic -
> l:libphobos2.a -lpthread -lm -lrt`.
> As you can see, -lcurl is there, but it still needs to be added 
> again
> after -l:libphobos2.a. So just add it again so the command 
> becomes:
> `gcc main.o -o main -m64 -L/usr/lib/x86_64-linux-gnu/ -lcurl 
> -L/usr/lib/
> x86_64-linux-gnu -Xlinker --export-dynamic -l:libphobos2.a 
> -lpthread -lm -
> lrt -lcurl`. And it links and runs.

I  had an additional -lcurl in already in my output, but added 
another at the end:

gcc weather_report.o -o weather_report -m64 
-L/usr/lib/x86_64-linux-gnu/ -lcurl -L/usr/lib/x86_64-linux-gnu 
-Xlinker --export-dynamic -lcurl -l:libphobos2.a -lpthread -lm 
-lrt -lcurl

but it still complains that it cannot find -lcurl.  It even does 
it if I add -lcurl everywhere:

gcc weather_report.o -o weather_report -m64 
-L/usr/lib/x86_64-linux-gnu/ -lcurl -L/usr/lib/x86_64-linux-gnu 
-Xlinker --export-dynamic -lcurl -l:libphobos2.a -lcurl -lpthread 
-lcurl -lm -lrt -lcurl

As an aside, I remember having to add additional mentions of a 
library in a link line years ago on Unix. I am surprised they 
haven't changed the way it works so that you only have to mention 
it once.



More information about the Digitalmars-d-learn mailing list