Nous utilisons l'IAR Embedded Workbench pour créer des bibliothèques. Lorsque nous compilons un projet à l'aide de ces bibliothèques, nous sommes confrontés à un problème: si la couche application implémente une fonction du même nom qu'une fonction définie dans une bibliothèque, l'erreur 'duplicate definition' est notifiée lors de la compilation de l'application.Compilation de la bibliothèque IAR: supprimer/masquer les symboles internes et les API
Afin d'éviter ce type d'erreur, je veux juste savoir s'il y a un moyen de cacher les API internes et aussi les symboles internes (variables globales ...) de la bibliothèque compilée?
Nous vous remercions à l'avance
est-il pas une meilleure façon de le faire que « Il suffit de leur donner un nom plus »? Peut-être liaison partielle avec un fichier de direction? – TomE
@TomE Je ne vois pas de moyen évident de faire des liens partiels, mais ma version IAR est un peu ancienne, et j'ai peut-être manqué quelque chose en parcourant le manuel. J'essaie d'éviter d'utiliser des fonctionnalités qui nécessitent un travail supplémentaire lors du changement de compilateur, donc simplement utiliser un nom plus long est souvent le chemin de moindre résistance. – user694733
@TomE Comme solution de contournement; En supposant que vous n'utilisez pas la fonction app et la fonction lib dans la même unité de compilation, vous pouvez changer la fonction de l'application en nom plus long, mais utilisez '# define' pour créer un court alias pour l'usage local. Pas élégant, mais C n'est pas un langage parfait pour commencer. – user694733