Re: Static compilation to generate shared library

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Thanks for taking time to look at my problem but using -nodefaultlibs
doesn't seem to solve my problem.

See, suppose I have a very simple program case.c and I compile it as: gcc
case.c, I get a.out of size like 10Kilobytes and on 

$ ldd a.out
linux-gate.so.1 =>  (0xffffe000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dbf000)
/lib/ld-linux.so.2 (0xb7f12000)

now I do gcc -static case.c to a.out of size 526 Kilobyte with 

$ ldd a.out
not a dynamic executable

I want my libfuncs.so to show this latter behaviour while as of now it is
showing the former. I want the byte code from the C library to be present in
my executable.

Thanks,
Ankit


Ian Lance Taylor-3 wrote:
> 
> ccodehelp <iitb.ankit@xxxxxxxxx> writes:
> 
>> gcc -c -static logger.c
>> gcc -c -static func_lib.c
> 
> -static is a link time option.  -c tells the compiler to not link.  So
> using -static and -c together does not make sense.
> 
>> gcc -static -Wall -o2 -fPIC -shared -ldl -g -o libfuncs.so logger.o
>> func_lib.o
> 
> -static says to do a static link.  -shared says to make a shared
> library, which is inherently non-static.  Using -static and -shared
> together does not make sense.
> 
>> But this is not doing what I want. My intention is to make libfuncs.so
>> such
>> that it does not depend on any other libraries like libc.so etc that is
>> all
>> the byte code from there is also present in this.
> 
> Use -nodefaultlibs to avoid linking against -lc.  Also look at using
> attributes for symbol visibility.
> 
> Ian
> 
> 

-- 
View this message in context: http://www.nabble.com/Static-compilation-to-generate-shared-library-tf4083168.html#a11647195
Sent from the gcc - Help mailing list archive at Nabble.com.


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux