Lien de la glibc, de manière statique, mais une autre bibliothèque dynamiquement avec GCC
J'ai besoin de lier statiquement la glibc pour mon projet, parce que la plate-forme cible prend en charge uniquement une très vieille ( mais fonctionne avec statiquement glibc de ma chaîne, j'ai vérifié)
Malheureusement, cette application a à faire usage de la bibliothèque pthread, mais lié statiquement libpthread prend trop de place.
Je voudrais lier statiquement glibc, et de façon dynamique pthread.
Après l'exécution de cette commande
powerpc-unknown-linux-gnu-gcc object_files -lrt -lpthread -Wl,-Bstatic -lc
J'obtiens:
/powerpc-unknown-linux-gnu/bin/ld: cannot find -lgcc_s
Vous aurez besoin d'ajouter
Oh, je suis désolé, ça a été mon erreur. Je voulais le lien de la glibc statiquement
Connexes: stackoverflow.com/questions/809794/...
-Wl,-Bdynamic
après la -lc
.Oh, je suis désolé, ça a été mon erreur. Je voulais le lien de la glibc statiquement
Connexes: stackoverflow.com/questions/809794/...
OriginalL'auteur nkdm | 2012-11-02
Vous devez vous connecter pour publier un commentaire.
Il y a un
-static-libgcc
si cela peut aiderensuite, vous devez aller avec R..la suggestion de uclibc
Pour l'enregistrement libgcc n'est pas la glibc (qui est ce que le titre de cette question est à propos). la glibc est l'implémentation GNU de la bibliothèque C standard. libgcc fait partie de la gcc internes et est utilisée par gcc "chaque fois qu'il doit effectuer une opération qui est trop compliqué à émettre de code en ligne".
OriginalL'auteur Anycorn
Vous devriez être en utilisant
-static
, pas-Wl,-static
. Ce dernier contourne gcc connaissances, et, par conséquent, gcc est toujours en train de lien partagélibgcc_s.so
plutôt que de la statiquelibgcc_eh.a
.Si votre but est de relier la libc de manière statique mais libpthread dynamiquement, ce n'est tout simplement pas aller travailler. Vous ne pouvez pas mélanger et assortir différentes versions de libpthread; il fait partie de la glibc, juste un fichier séparé, et les internes doivent correspondre. Même avec la même version, je pense que la liaison de la libc statique et la libpthread dynamiquement sera très cassé.
Si la glibc est trop grand pour vos besoins, vous pouvez essayer une alternative libc comme uClibc ou musl.
OriginalL'auteur R..