KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Jeudi 22 mai 2008 - 20:02:23

Visual C++ - Compilation d'une bibliothèque

Rechercher : dans
Visual C++ - Compilation d'une bibliothèque
par samworld
 Fil de Discussions
Statut : Non résolu
jeudi 20 mars 2008 à 08:48:03
Bonjour,

Cela fait bien au moins un an que je n'ai pas posté sur ce forum. Heureusement, mon compte n'a pas été éjecté (J'ai quand même dû consulter quelque fois des articles ce qui explique cela.)

Je dispose d'un ensemble de fichiers sources (.h et .cpp) localisés dans un même répertoire. Ils définissent des objets C++ dans un "namespace" précis. Le but est d'intégrer cette bibliothèque à mon projet Visual C++ 2003, qui l'utilise.

Jusqu'à maintenant dans mon projet, j'ajoute les nouveaux fichiers sources au projet pour qu'il les prenne en compte. Et en utilisant la commande de génération, souvent (notamment quand un .h a changé) Visual Studio décide de tout compiler, même si pour certains fichiers ce n'est pas nécessaire !

Comment je pourrais faire pour compiler une seule fois cette bibliothèque, et ne plus jamais avoir besoin de le faire ? Et l'intégrer dans mon projet.

En vous remerciant d'avance si vous trouvez au moins des pistes pour atteindre mon objectif et que vous pouvez m'en faire part.

Samuel.
Configuration: Windows XP SP2
Visual C++ 2003
Répondre à samworld  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Char Snipeur, le jeudi 20 mars 2008 à 08:56:49 Fil de Discussions
Salut.
C'est marrant de voir à quel point les utilisateurs de visual peuvent être compétant en programmation, mais vraiment ignorant de la compilation !
Il faut que tu crée une bibliothèque C. Son nom doit être libBIBLIO.a (tu remplace BIBLIO par ce que tu veux).
Pour le faire, il faut compiler mais non lier tout les fichiers sources, puis les archiver ensemble. Tu peux aussi faire une DLL. Avec Visual, je ne connait pas la procédure exacte, mais tu doit avoir un truc dans le genre nouveau projet->DLL ou ->librarie.
Ensuite, tu continue d'inclure tes .h dans ton nouveau projet, mais il faut que tu rajoutes biliothèque que tu as créer (DLL ou lib*.a) au linkage.
Bonne chance Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
Répondre à Char Snipeur

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par samworld, le vendredi 21 mars 2008 à 19:50:02 Fil de Discussions
Bonsoir,

Merci pour ta tentative de réponse. Contrairement à ce que tu dis je suis loin d'être ignorant en matière de compilation.
Ce n'est de plus pas parce que j'utilise Visual que je l'ai fait toute ma vie. On ne peut donc pas tout connaître.

Comment paramétrer la DLL pour qu'elle soit reconnue par une application d'un projet donné ? A cette question je n'ai trouvé aucune réponse nulle part et j'ai produit une DLL inutilisable.

Bonne soirée.
Répondre à samworld

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Mahmah, le vendredi 21 mars 2008 à 20:52:36 Fil de Discussions
Bonjour,

Il y a deux attaques possibles.

1) Ta librairie (statique ou non) est un projet que tu souhaites pouvoir débugguer et dans ce cas il suffit d'ajouter le projet à la solution et de l'ajouter dans les "Referencies" de l'autre projet. Ainsi, les .lib et .dll sont automatiquement trouvés dans les répertoires de sortie et les projets compilés dans le bon ordre.

2) Soit c'est un projet fini et tu peux l'ajouter comme n'importe quelle librairie dans les propriétés de ton projet, paramètres du linker -> input -> additional dependencies.

Accessoirement, pour ne pas recompiler l'ensemble d'un projet, il suffit de sélectionner l'option pour construire le "program database" puis d'activer le "minimal rebuild". Par contre ce n'est vraiment utile qu'en debug.

M.
Répondre à Mahmah

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par samworld, le samedi 22 mars 2008 à 13:08:05 Fil de Discussions
Bonjour Monsieur,

Pour te répondre point par point :

1) J'ai créé un projet Visual de librairie (MFC et non ATL tout comme le projet principal auquel doit venir se greffer la bibliothèque). Seulement impossible d'ajouter le binaire généré dans les références du projet principal ! C'est ce que j'ai essayé en premier mais lorsque j'indiquais le lien vers le fichier, et que je voulais valider avec Ok, un dialogue d'erreur m'indiquant que l'ajout était impossible au projet apparaissait.

2) Je me suis résolu à indiquer le chemin dans un paramètre du projet où apparaît déjà trois références vers des fichiers ".lib". Après avoir essayé d'ajouter dans cette liste le premier dll que j'avais créé, l'édition de lien l'a refusé. Après avoir généré la librairie statique ".lib" il semble l'avoir accepté mais à l'édition de lien les appels vers les objets de la bibliothèque étaient non résolus.
C'est pourquoi je me suis demandé quelle pouvait être la procédure adéquate pour que le contenu de la bibliothèque puisse être lu par le programme appelant.

3) Quels que soient les paramètres que je change dans le projet, je ne les retrouve pas après enregistrement, fermeture puis ré-ouverture du projet. Quelles peuvent être les raisons pour cela ? Il faut savoir que le projet se trouve sous contrôle de configuration par l'outil CMSynergy. Mais même en ayant pris soin d'attribuer les fichiers créés par Visual Studio en lecture_et_écriture, rien n'y fait.

Merci de votre aide.
Samuel.
Répondre à samworld

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par samworld, le samedi 29 mars 2008 à 13:53:42 Fil de Discussions
Une idée ?
Répondre à samworld

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par bibapelouwap, le mardi 1 avril 2008 à 15:30:30 Fil de Discussions
j'ai un souci ac visual C++ express 2008+
je n'arrive pas à compiler, ca m'affiche une erreur de bibliothèque, co koi g oublié #include<stdaxf>
mm si j'inclus cette biblio, ca ne fonctionn pa.
commt faire?

merci d'avance
Répondre à bibapelouwap

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Char Snipeur, le mardi 1 avril 2008 à 15:43:53 Fil de Discussions
ça ne fonctionn pa.
qu'entends tu par là ???
Ouvre un nouveau post, car ta question n'a rien à voir. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
Répondre à Char Snipeur

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par bibapelouwap, le mercredi 2 avril 2008 à 13:44:40 Fil de Discussions
=) c vrai que je n'ai pas été très explicite lol et je m'en excuse !!
Donc, qd j'dis que ca ne fonctionne pas, je veux dire que j'ai toujours la même erreur qui s'affiche, et donc je n'arrive pas a exécuter le programme ("ca me met chemin du fichier inexistant" un truc du genre )
Saisis-tu mon problème??
Répondre à bibapelouwap

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Char Snipeur, le mercredi 2 avril 2008 à 14:24:30 Fil de Discussions 
oui, et non.
si tu met pas l'erreur exact, je ne saurai pas si c'est une erreur de path au link, une erreur d'include ou une erreur de config de Visual. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
Répondre à Char Snipeur
Discussions pertinentes trouvées dans le forum
19/09 21h29Cherche compilateur Visual C++ 6.0Programmation15/04 00h167
16/02 10h28[Visual C++] erreur à la compilationProgrammation27/11 14h279
26/01 19h39Probleme de compilation sous visual C++ 6.0Programmation18/02 22h075
03/09 10h28[Visual Basic] CompilateurProgrammation03/09 15h303
Plus de discussions sur « Visual C++ Compilation d'une bibliothèque » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide