Sous Solaris 10, je crée une bibliothèque A.so qui appelle une fonction f() définie dans la bibliothèque B.so. Pour compiler la bibliothèque A.so, je déclare dans mon code f() en tant qu'externe.
Malheureusement, j'ai "oublié" de déclarer dans le makefile de A qu'il doit se lier avec B. Cependant, "make A" ne génère aucun avertissement, aucune erreur, et la bibliothèque A.so est créée.
Évidemment, lors de l'exécution du code de A, l'appel à f() plante car il est indéfini.
Existe-t-il un moyen (option de lien, astuce de code...) pour que la compilation de la bibliothèque A échoue ? Comment puis-je être sûr que tous les symboles référencés dans la bibliothèque A sont définis au moment de la compilation ?
Merci pour toutes les suggestions.