Supposons que vous ayez un fichier object main.o et deux bibliothèques statiques tierces externes libA.a et libB.b. Et vous voulez les relier entre eux. Mais vous voulez envelopper les appels à malloc à partir de libA.a (remplacez malloc par les vôtres), mais pas pour libB.a.
Comment ferais-tu ceci?
C’est un problème intéressant, mais est-ce que cela peut être résolu?
(pour le rendre plus intéressant, supposons qu’il mélange du code c et du code c ++ :))
Edit 1:
Pour rendre les choses plus claires. Je vais vous montrer comment cela peut être fait pour les deux bibliothèques:
gcc -static -Wl,--wrap=malloc -o main.out main.o mem.o -lA -lB
Ici, le fichier mem.o contient le code pour la fonction __wrap_malloc. Mais cela entraînera l’utilisation des malloc personnalisés par les deux bibliothèques. La question est de savoir comment le faire fonctionner pour un seul d’entre eux.
Une bonne réponse à mon autre question, qui était plus spécifique.
Enveloppez malloc mais seulement pour certains fichiers d’entrée (object et lib)