curl-library
RE: static link
Date: Thu, 14 Sep 2006 11:14:42 -0700
(Apologies for top-posting. Outlook doesn't quote properly in any way
that I can find.)
The command
gcc -lstdc++ -L/usr/lib /usr/lib/libcurl.a -static-libgcc -o logexe
suggests that the problem may be your use of LINKCC -- you need to
arrange that the static libraries come after the object file that use
them on the command line, usually.
-- James
-----Original Message-----
From: curl-library-bounces_at_cool.haxx.se
[mailto:curl-library-bounces_at_cool.haxx.se] On Behalf Of Richard Pickett
Sent: Thursday, September 14, 2006 10:32 AM
To: 'libcurl development'
Subject: RE: static link
> > Is there a way to link in libcurl static?
>
> ./configure --disable-shared will build only a static libcurl, which
is
> all
> you should need as long as you don't have a dynamic libcurl lying
around
> somewhere else on your system. Otherwise, include the path of
libcurl.a
> (or
> libcurl.la if you're using libtool) when linking your app instead of
using
> -lcurl
thanks for the quick reply. This is what I had in my makefile:
LINKCC = $(CC) -lstdc++ -L/usr/lib -lcurl -lz -lssl -lcrypto -ldl
-static-libgcc
and this is what I changed it to:
LINKCC = $(CC) -lstdc++ -L/usr/lib /usr/lib/libcurl.a -static-libgcc
And now make complains with:
gcc -lstdc++ -L/usr/lib /usr/lib/libcurl.a -static-libgcc -o logexe
license.o logexe.o
license.o(.text+0x3d): In function `LicenseExit()':
: undefined reference to `curl_easy_cleanup'
license.o(.text+0x1a0): In function `CheckLicense()':
: undefined reference to `curl_easy_init'
license.o(.text+0x391): In function `CheckLicense()':
: undefined reference to `curl_easy_setopt'
license.o(.text+0x3ac): In function `CheckLicense()':
: undefined reference to `curl_easy_setopt'
license.o(.text+0x3c1): In function `CheckLicense()':
: undefined reference to `curl_easy_setopt'
license.o(.text+0x3d2): In function `CheckLicense()':
: undefined reference to `curl_easy_perform'
it only goes away when I go back to the old -lcurl jumk. I've checked
and my
libcurl.a is there so I'm at a loss to why gcc won't pull it in. Here's
an
objdump on libcurl.a:
objdump -t /usr/lib/libcurl.a | grep curl_easy
000000e0 g F .text 0000003f curl_easy_init
00000120 g F .text 0000001e curl_easy_setopt
00000140 g F .text 00000098 curl_easy_perform
000001e0 g F .text 00000040 curl_easy_cleanup
00000220 g F .text 0000001b curl_easy_getinfo
00000240 g F .text 000001c5 curl_easy_duphandle
thanks again for your help!
Received on 2006-09-14