J'ai un peu de difficulté à organiser mes fichiers source. p>
J'ai mon propre collection de code, mais en croissance croissante que j'aimerais utiliser dans divers projets. La disposition de fichier et de dossier est quelque chose comme ceci: p>
Un de mes problèmes est que je souhaite inclure ce code, selon les besoins, dans mes autres projets. À ce jour, j'ai utilisé des chemins absolus pour pointer vers le code de Libary, mais il doit y avoir une meilleure façon. P>
FutHermore, j'ai besoin d'ajouter chaque fichier de bibliothèque que j'utilise dans les fichiers de projet Visual Studio afin de pouvoir compiler correctement. P>
Donc, ma question en bref est comment puis-je résoudre ce problème? Quel est le moyen approprié / meilleur de gérer la situation ci-dessus. P>
4 Réponses :
Je ne pense pas qu'il y ait un bon moyen em> de faire cela - cela dépend de ce que vous essayez de réaliser. p>
Voici certaines choses que vous pourriez ne pas être au courant: p>
Vous pouvez utiliser des chemins relatifs dans vos projets. P> li>
Vous pouvez utiliser des variables d'environnement dans des chemins. P> LI>
Vous pouvez ajouter des annuaires aux règles de recherche de Visual Studio. P> Li>
ul>
Cela vous donne un peu plus de contrôle sur l'endroit où vous mettez les fichiers inclus et si vous ajoutez vos dossiers aux règles de recherche de Visual Studio, vous n'avez pas à inclure des chemins du tout. P>
Premier: ajoutez tous les répertoires utilisés à votre projet incluent des chemins. Ajoutez-les comme des chemins relatifs si possible. P>
Deuxièmement: vous devez ajouter toutes les fichiers de bibliothèques / sources d'occasion à votre projet. Cela peut être fait soit fait dans l'explorateur de projet, soit dans l'onglet Project-> Linker. Dans ce dernier cas, vous devrez ajouter également les répertoires utilisés des chemins de bibliothèque de projets. P>
Habituellement, ce n'est pas une bonne idée d'utiliser des chemins dans #include Directives. P>
Vous ne devriez pas, en général, ajouter des fichiers source des bibliothèques directement à d'autres projets. Compilez-les séparément comme une bibliothèque et utilisez celles-ci.
Pour organiser la structure de répertoire de la bibliothèque elle-même, je me suis installé maintenant sur quelque chose comme la structure suivante p>
(et le cas échéant) p>
I Mettez tous les en-têtes directement dans le chemin de la bibliothèque et j'ai un sous-dossier Le plus grand avantage est que chaque projet que je n'entate que nécessite un chemin d'accès incluant le point de vue du répertoire contenant mes bibliothèques, puis tout (public) include est fait comme p> Inclus particuliers sont simplement P> privé code> qui contiendra tout ce qui est utilisé uniquement par la bibliothèque, mais ne doit jamais être partagé / exposé. p>
#include "onlyinlib.h"
Si vous devez inclure un code tiers au lieu de simplement relier une version pré-compilée (par exemple, vous devez peut-être apporter des modifications ou des modifications), considérez ramifiant em> dans tout ce que vous utilisez. Pour la commande source: p>
En supposant que vous utilisiez un système de contrôle source décent, ce schéma vous permettra de passer facilement à des versions plus récentes de bibliothèques tiers, puis de fusionner ces modifications avec les modifications que vous avez apportées localement. P>
Par exemple, supposons que "la lib1" libère une nouvelle version: p>
Ceci est, IMO, le seul moyen sain de gérer la modernisation des bibliothèques tiers auxquelles vous avez apporté des modifications locales. P>
Pourquoi voulez-vous inclure le code source dans d'autres projets? L'utilisation de fichiers source utilisées dans plusieurs projets de cette manière ad hoc est la folie - vous êtes tenu de modifier un projet qui le casse une autre. Et il supprime également l'un des avantages de l'utilisation de bibliothèques - vous n'avez besoin que de la liberté et non de la source. Essayez d'être plus discipliné - il gagnera du temps à long terme et probablement à court terme. Utilisez un système de contrôle du référentiel et de la version (git, subversion ou autre). Assurez-vous de bien vouloir «la version» et publiez des versions testées / livrées de vos bibliothèques.
Peut-être que cela devrait être une question de wiki communautaire? Il n'y a pas une réponse, mais c'est plus une discussion sur l'organisation de fichiers source.