GNU/Linux >> Tutoriels Linux >  >> Linux

Comment lier statiquement un programme complexe

Si vous ne pouvez pas compiler un binaire statique, j'ai eu de bons résultats avec Statifier.


La plupart des autoconf généré configure script vous permettra de faire un build statique :

 ./configure --enable-static
 make

Si cela ne fonctionne pas, vous pourrez peut-être transmettre les drapeaux de l'éditeur de liens via LDFLAGS , comme ceci :

 ./configure LDFLAGS=-static

Je suppose qu'il utilise gcc pour compiler une série de programmes c, bien que vous deviez regarder dans le Makefile pour le savoir.

Si c'est le cas, vous pouvez ajuster les lignes gcc dans le makefile pour faire une liaison statique, bien que selon la structure du programme, cela puisse être un changement complexe. Jetez un œil à man gcc pour voir comment cela se fait.

Je serais intéressé de savoir pourquoi vous créez un lien statique. Avez-vous plutôt envisagé d'utiliser la pré-liaison ?

Vous devez savoir qu'il peut y avoir des problèmes de licence si tous les composants ne sont pas GPL.


Oui, vous devez éditer le fichier make et ajouter le paramètre -static à gcc pendant le lien.


Linux
  1. Définir une IP Statique sur Debian 11 - Comment faire ?

  2. Comment terminer un thread dans un programme C ( exemple pthread_exit )

  3. Lien statique de la fonction de bibliothèque partagée dans gcc

  4. Comment faire une incrémentation atomique et récupérer en C?

  5. comment installer gcc 4.9.2 sur RHEL 7.4

Comment installer GCC sur CentOS 7

Comment configurer Linux en tant que routeur statique

Guide pratique :Introduction à la programmation - Contrôle de flux

Brilliant Ways sur la façon d'exécuter un programme sous Linux

Comment écrire et exécuter un programme C sous Linux

Comment configurer une adresse IP statique sur le système Linux