Créer une librairie statique
Bonjour à tous,
J'ai déjà posé la question suivante, il y a plusieurs années. Apparemment, cela m'a permis de créer quelques librairies dans la foulée. Mais aujourd'hui, j'ai oublié le mode d'emploi ! Comment créer une librairie statique ???
Historique :
Je démarre Visual C++
- "Nouveau projet"
- panneau de gauche "win32"
- panneau de droite "Projet Win32"
- je choisis l'emplacement "C:\0\1\p\visual 2010\libbtest\"
- j'entre le nom "malib4" (euh, oui, c'est mon 4-ème essai !) puis "OK"
- puis "suivant"
- type d'application "bibliothèque statique"
- options supplémentaires "en-tête précompilé"
- puis "terminer"
Je me retrouve avec un écran vide. Je m'attendais à avoir ne serait-ce qu'un petit message de bienvenue, mais rien.
- fichier-nouveau-fichier
- panneau de gauche "Visual C++"
- panneau de droite "Ficher C++" puis "ouvrir"
le fichier "source1.cpp" est sur mon écran, vide, bien sûr.
Je tape
Code:
1 2 3 4
| double masomme(double a,double b)
{
return (a+b);
} |
puis générer - générer la solution
En bas de l'écran, j'obtiens
Citation:
1>------ Début de la génération*: Projet*: malib4, Configuration*: Debug Win32 ------
1> stdafx.cpp
1> malib4.vcxproj -> C:\0\1\p\visual 2010\libbtest\malib4\Debug\malib4.lib
========== Génération*: 1 a réussi, 0 a échoué, 0 mis à jour, 0 a été ignoré ==========
Tout est parfait donc. Je pense que j'ai une librairie malib4.lib qui contient une précieuse fonction masomme.
Puis,
- fichier - nouveau - fichier
- panneau de gauche "Visual C++"
- je clique sur Fichier d'en-tête (.h) dans le panneau de droite, puis "ouvrir"
un nouvel onglet Header1.h apparaît : je tape double masomme(double a,double b);- puis "fichier" - "Quitter"
On me dit :
Citation:
Voulez-vous enregistrer les modifications apportées aux éléments suivants :
malib4.sln
Fichiers divers
Header1.h
Je dis "oui"
Pour tester ma toute nouvelle librairie, je crée un projet "testlib4" :
Code:
1 2 3 4 5 6 7 8
| #include "stdafx.h"
#pragma comment(lib,"C:\\0\\1\\p\\visual 2010\\libbtest\\malib4\\Debug\\malib4.lib")
int _tmain(int argc, _TCHAR* argv[])
{
printf("c=%f\n",masomme(10.,20.));
return 0;
} |
Mais au moment de la génération, on me répond :
Citation:
1>------ Début de la génération*: Projet*: testlib4, Configuration*: Debug Win32 ------
1> testlib4.cpp
1>testlib4.obj : error LNK2019: symbole externe non résolu "double __cdecl masomme(double,double)" (?masomme@@YANNN@Z) référencé dans la fonction _wmain
1>C:\0\1\p\visual 2010\libbtest\testlib4\Debug\testlib4.exe : fatal error LNK1120: 1 externes non résolus
========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
Alors ma question est : qu'ai-je fait de mal ? Quel petit détail ai-je oublié pour que ça marche ?
Merci d'avance à celui qui saura me montrer le chemin de la vérité...