curl / Mailing Lists / curl-library / Single Mail


Re[6]: Static libcurl size under Windows

From: Konstantin Vlasov <>
Date: Thu, 20 Apr 2017 17:57:15 +0300

Hi, Jan.

> Konstantin Vlasov in gmane.comp.web.curl.library (Thu, 20 Apr 2017
> 16:02:31 +0300):
>>The problem is, I need static OpenSSL, not shared.

> Then you have no other choice than to accept the bigger size of OpenSSL
> 1.1.0, compared to OpenSSL 1.0.2.

The OpenSSL size difference has nothing to do with it. Even if I was working
with 1.0.2, it has lib sizes of 13.7 + 2.1 Mb, so embedding them into libcurl
would still increase it from 1 Mb to about 17 Mb.

Anyway, I think, there is some misunderstanding about my concerns, so I'll put
it again plain and simple. Here are two experiments:

* OpenSSL 1.1.0 static build;
* libcurl 7.52.1
* Building libcurl by going into lib/ and running:
  nmake /f Makefile.vc10 cfg=release-ssl

Result: libcurl.lib with size ~1 Mb.

* Same OpenSSL 1.1.0 static build;
* Same libcurl 7.52.1 (slightly modified to accept new OpenSSL
lib names);
* Building libcurl by going into winbuild/ and running:
  nmake /f mode=static WITH_SSL=static DEBUG=no MACHINE=x86 WITH_DEVEL=C:\Programs\OpenSSL\x32 ENABLE_SSPI=no ENABLE_WINSSL=no

Result: libcurl_a.lib with size ~21 Mb.

Obviously, the second build scenario embeds OpenSSL libs inside libcurl, while
the first scenario does not (I confirmed it by comparing the lists of symbols).

Why does the second scenario do it, and how to avoid it?

I need static libcurl.lib which uses static OpenSSL but does NOT contain it as
part of itself. Otherwise I would get link errors (symbol conflicts) when
building VirtualBox with both libcurl AND openssl. The first scenario gave me
exactly what I needed, but now in 7.54.0 it is deprecated. How do I get that
type of libcurl.lib now?

Bye.                                    With best regards,
                                        Konstantin Vlasov.
Received on 2017-04-20