2017-04-07 2 views
0

J'ai utilisé EXCLUDE_FILE pour omettre explicitement de placer certaines sections de certains fichiers objets dans le fichier objet maître que je veux générer. Je me demandais s'il y avait un moyen d'omettre un symbole particulier plutôt qu'une section entière.Existe-t-il un moyen d'exclure une fonction/symbole d'une section particulière dans le script de l'éditeur de liens?

Exemple:

que j'ai un a.lib de bibliothèque qui se compose de 1.o, 2.o et 3.O avec des sections .text et .data. La section .text de 1.o contient func1, func2 et func3.

en utilisant EXCLUDE_FILE, je peux seulement omettre la section .text ou .data entière de 1.o. Je veux pouvoir omettre seulement func1 et placer func2 et func3. Est-ce possible?

Répondre

1

Si vous utilisez GCC, vous pouvez placer votre fonction dans une section séparée. Et déplacez ou omettez la section avec un script d'éditeur de liens. Ceci indique à GCC de compiler f3 dans la section .excl. Ensuite, avec votre script éditeur de liens, vous pouvez le placer ailleurs.

SECTIONS 
{ 
    .text : 
    { 
     *(.text) 
    } 
    .... 
    .excl : 
    { 
     *(.excl) 
    } 
}