On 5/6/2020 3:25 PM, Testing WunTuTri via curl-library wrote:
I did this
Compiling the static lib on windows with nmake yields libcurl_a.lib
and a bunch of obj files,
libcurl_a.lib needs to be in the folder with the obj files in order
for my program to compile without unresolved externals.
Which is GREAT! But,
I can't seem to disable certain curl features using nmake, the same
way I can do with
./configure && make && make install
|./configure --disable-ares --disable-cookies --disable-crypto-auth
--disable-ipv6 --disable-manual --disable-proxy --disable-verbose
--disable-versioned-symbols --enable-hidden-symbols --without-libidn
--without-librtmp --without-ssl --without-zlib --disable-dict
--disable-file --disable-ftp --disable-gopher --disable-imap
--disable-ldap --disable-ldaps --disable-pop3 --disable-rtsp
--disable-smtp --disable-telnet --disable-tftp --disable-pthread
--prefix=/curl|
This is the configure command I use on git-bash sdk on the same
windows VM where I used nmake. Everything compiles without erros
except the fact that all I get is the libcurl.a library instead of
libcurl_a.lib.
Using it in my program (x64/windows; http-get request to read string
from given host)
`
#include "curl/curl.h"
#pragma comment (lib, "crypt32.lib")
#pragma comment (lib, "advapi32")
#pragma comment (lib, "ws2_32.lib")
#pragma comment (lib, "wldap32.lib")
#pragma comment (lib, "normaliz.lib")
#pragma comment (lib, "libcurl/libcurl.a")
`
gives me 6 unresolved externals.
https://pastebin.com/raw/fFPVHZGR
I tried linking all the .o files to libcurl.a when compiling, with no
luck.
I expected the following
|make install| to produce the libcurl_a.lib file
curl/libcurl version
7.70.0
I have been looking everywhere and I've spend nearly 10 hours today
trying to get this sorted, what am I possibly doing wrong?
If you are not building the library with the Microsoft compiler, as you
would with winbuild and nmake, then you end up with an .a file. It looks
as though you are attempting to build your application using the
Microsoft compiler and linking to that .a file. AFAIK that is not
guaranteed to work. Likely the errors you are seeing is a result of CRT
mismatch. MinGW is using one CRT and Visual Studio or whatever expects
another. Even if you use the same CRT I don't think it is supported to
mix static libraries that way, but I'm not certain. My advice pick one
compiler or the other.
If you need to use MS compiler to build your app and need static
libcurl.lib and want to disable features with the winbuild method, you
could probably do that by finding the defines and specifying them on the
command line.
nmake /E CC="cl /DCURL_DISABLE_COOKIES /DCURL_DISABLE_DICT
/DCURL_DISABLE_FILE /DCURL_DISABLE_FTP /DCURL_DISABLE_LDAP
/DCURL_DISABLE_LDAPS /DCURL_DISABLE_TELNET /DCURL_DISABLE_TFTP "
and so on
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette: https://curl.haxx.se/mail/etiquette.html