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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

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é...