LINUX.ORG.RU

Как собрать mixed dynamic/static ?


0

0

пусть есть прога:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
        double a = 0;

        a = sin(44);

        printf("%e",&a);

        return 0;
}

EOF

xочу что бы libc было статическим, а libm динамическим (т.е. so). 

это возможно ?

как это сделать ?

у меня чёто не очень получается... вот:

gcc -c math.c

ld -Bstatic -o math -L`gcc -print-file-name=` /usr/lib/crt1.o /usr/lib/crti.o math.o /usr/lib/crtn.o -lc -lgcc_eh -lc -Bdynamic -lm

ну если б ты линкер дёргал через gcc я б тебе посоветовал вместо статических либ указывать файлы статических либ с полными путями и остальными кючами пор умолчанию

типа

gcc -o math math.c /usr/lib/libc.a

cvv ★★★★★
()
Ответ на: комментарий от cvv

>gcc -o math math.c /usr/lib/libc.a -lm

>ldd math
        linux-gate.so.1 =>  (0xffffe000)
        libm.so.6 => /lib/libm.so.6 (0xb7f96000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7f8b000)
        libc.so.6 => /lib/libc.so.6 (0xb7e43000)
        /lib/ld-linux.so.2 (0xb7fd1000)

#от зависимости на libc он не избавился, но стал больше

>du -s -h math
560K    math

#если `gcc -o math math.c -lm` то только 8К

zort
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.