curl-library
Re: Issues building with ZLIB and c-ares, Mingw on Win8 x64
Date: Thu, 13 Dec 2012 14:25:47 +0100
"Jesse Nicholson" <ascensionsystems_at_gmail.com> wrote:
> Anyway so I downloaded latest release c-ares, zlib and curl... compiled
> c-ares successfully (although I can only get it to spit out a static lib),
That's the problem.
> zlib compiled without issue, then on to curl. Curl will compile the static
> lib without issue, but as soon as it goes to link together libcurl.dll, I
> get a ton of undefined references to c-ares functions. (note that the
> linker doesn't complain about not finding -lcares) Example:
Then I guess you *don't* have both of these files:
dir g:\MingW32\src\inet\DNS\c-ares\*.a
3.10.2012 16:21 424.734 libcares.a
3.10.2012 16:21 58.172 libcares.dll.a
Per the gcc heuristics when given a command like "-lcares" it
will pick "libcares.dll.a" first, then "libcares.a" (if the first
imp-lib isn't found). That's my I prefer to use absolute lib names.
In this case Makefile.m32 should IMHO have stated:
DLL_LIBS += "$(LIBCARES_PATH)/libcares.dll.a" (absolute form)
and not:
DLL_LIBS += -L"$(LIBCARES_PATH)" -lcares (obfuscated form)
That's why `_imp__ares_version` is missing (since ld sees a static
lib). Check it by modifying the link command to produce a .map-file:
$(libcurl_dll_LIBRARY): $(libcurl_a_OBJECTS) $(RESOURCE) $(libcurl_dll_DEPENDENCIES)
@$(call DEL, $@)
$(CC) -v -Wl,--print-map,--sort-common,--cref $(LDFLAGS) -shared -o $@ \
-Wl,--output-def,$(@:.dll=.def),--out-implib,$(libcurl_dll_a_LIBRARY) \
$(libcurl_a_OBJECTS) $(RESOURCE) $(DLL_LIBS) > $(@:.dll=.map)
If you have only libcares.a you will see something like:
LOAD g:\MingW32\src\inet\DNS\C-ares/libcares.a
If you have both libcares.a and libcares.dll.a you will see something like:
LOAD g:\MingW32\src\inet\DNS\C-ares/libcares.dll.a
BTW. Why is $(libcurl_dll_DEPENDENCIES) == libcares.a here?
If you reall want to use libcares.a (static lib), add '-DCARES_STATICLIB' to
your CFLAGS. But it would be best to figure out why libcares.dll.a isn't
produced.
--gv
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2012-12-13