Je veux changer un makefile existant pour inclure une autre bibliothèque statique que j'ai créée moi-même. J'ai suivi quelques instructions pour faire la bibliothèque; il contient actuellement tous les fichiers .o
à l'exception de main.o
. Appelons ma bibliothèque libABC.a
. Si cela fait une différence, le paquet que je modifie est écrit en C++ et la bibliothèque que j'inclus est écrite en C.Makefile: ajouter une bibliothèque à un autre projet
Jusqu'à présent, j'ai ajouté -lABC
à ma liste de bibliothèques et j'ai placé la bibliothèque dans le même répertoire que les autres bibliothèques de sorte que je ne dois pas ajouter une autre commande -L
. J'ai déplacé tous les fichiers d'en-tête dans le répertoire /include
du paquet (je ne sais pas si je devais le faire) donc je peux éviter d'ajouter une autre commande -I
. La compilation en l'état ne me donne aucune erreur, mais si j'essaie d'ajouter une commande #include
pour l'un des fichiers d'en-tête de la bibliothèque et que j'appelle une fonction, j'obtiens une erreur undefined reference to function()
.
Des idées sur ce que je peux faire?
en-têtes sont écrits en C enveloppés dans 'extern "C"{}'? http://stackoverflow.com/questions/1041866/in-c-source-what-is-the-effect-of-extern-c –