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
puis générer - générer la solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 double masomme(double a,double b) { return (a+b); }
En bas de l'écran, j'obtiens
Tout est parfait donc. Je pense que j'ai une librairie malib4.lib qui contient une précieuse fonction masomme.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é ==========
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 :Je dis "oui"Voulez-vous enregistrer les modifications apportées aux éléments suivants :
malib4.sln
Fichiers divers
Header1.h
Pour tester ma toute nouvelle librairie, je crée un projet "testlib4" :
Mais au moment de la génération, on me répond :
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; }
Alors ma question est : qu'ai-je fait de mal ? Quel petit détail ai-je oublié pour que ça marche ?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é ==========
Merci d'avance à celui qui saura me montrer le chemin de la vérité...
Partager