2009-08-28 10 views
0

J'ai construit un certain nombre de modules communs que j'ai conservés jusqu'ici dans un répertoire et référencés à partir des répertoires de projets qui en ont besoin.Meilleure approche pour une fonctionnalité commune

Je me demandais s'il y avait une meilleure façon de le faire?

Les modules communs et le code les utilisant sont écrits en C++.

+0

Que voulez-vous dire par "référencement", en ajoutant les fichiers source et en-tête à d'autres projets, ou en incluant seulement les en-têtes et les liens vers une librairie statique? –

+0

Par référence je veux dire "y compris". – Konrad

Répondre

3

Je suggère de créer une bibliothèque statique et de lier avec elle. C'est beaucoup plus simple qu'une DLL, vous n'avez pas à vous inquiéter de la gestion des versions, et tout autour, vous travaillez avec eux comme vous le feriez avec vos modules communs.

EDIT: Fondamentalement, une bibliothèque statique est une collection de fichiers objets. Si vous travaillez avec Visual Studio, vous pouvez créer un projet de bibliothèque statique (ou modifier le type de sortie de votre projet), ce qui créera un fichier .lib que vous pourrez lier dans votre application. Si vous utilisez GCC, vous pouvez utiliser "ar" pour créer le fichier de bibliothèque à partir d'un tas de fichiers .o, et le relier à votre application.

+0

J'aime cette idée, pouvez-vous fournir plus d'informations ou des liens vers une explication? – Konrad

0

J'aime les mettre dans une DLL de sorte que la taille de mon exécutable devienne moins.

+0

+1 Le downvote était ridicule. Contre. – Sahas

1

La gestion et l'amélioration de votre ensemble privé d'outils est une chose importante pour un programmeur. Personnellement, je vais toujours pour l'approche "aussi rapide que possible".

Plus vite ils sont liés et inclus dans mon travail, plus vite je me sens "chez moi". Je suis même parfois jeter toutes les lignes de commande et les jeter dans la bibliothèque par défaut et inclure des chemins, et whoopie, ils sont là, à votre service. (Je ne recommanderais pas cela bien sûr, mais c'est rapide et facile)

Je ne sais pas pourquoi vous utilisez dlls, car une lib normale causerait moins de maux de tête à inclure.

Astuce: créez un projet distinct parmi eux. Les avoir dans un emplacement logique central. (Peut-être myWorkspace/MyLibs) Étant donné que vos outils vont probablement évoluer/changer/s'améliorer avec chaque projet sur lequel vous travaillez, je configure parfois mon environnement de travail pour pouvoir basculer rapidement, ajouter quelque chose et revenir au projet d'origine . Dans ce cas, il est utile de l'inclure en tant que dépendance de projet dans votre EDI, qui peut être créée automatiquement puis reliée. C'est trivial avec presque tous les IDE.

Un problème différent cependant sont les employeurs. Ils se méfient généralement des choses que vous emportez dans leurs projets. Surtout si vous voulez fermer la source à eux. Mais c'est une histoire pour une autre question;)

+0

Bon point sur les employeurs - mais c'est juste pour mes propres projets personnels. – Konrad

Questions connexes