[C++] Utiliser la bibliothèque SystemC sous Visual Studio (et Visual C++ Express)

Un article qui sort du cadre de .NET, mais qui reste dans le domaine de Visual Studio.

Cet article est destiné aux personnes qui souhaitent utiliser la bibliothèque SystemC sous Visual Studio 2003/2005/2008 (ou Visual C++ Express 2005/2008). Comme je n’aime pas faire les choses à moitié, dans cet article j’utilise la fonctionnalité des « Feuille de propriétés » de Visual C++, afin d’avoir un modèle de propriétés pour les projets SystemC. Vous pourrez ainsi réutiliser ces feuilles de propriétés dans de nouveaux projets, afin que les paramétrages de ces derniers soit plus rapide à réaliser…

Pré-requis

  • Visual C++ Express est amplement suffisant. La version Express 2008 peut être téléchargée gratuitement ici.
  • La bibliothèque SystemC 2.2. Vous pouvez la télécharger sur le site officiel, où directement sur mon site (fichier joint avec cet article)..
  • Si vous souhaitez un code source exemple en SystemC, vous pouvez télécharger un additionneur en SystemC (fichier joint avec cet article) et qui compile sans problème sous Visual C++ Express 2008

Après avoir téléchargé la bibliothèque SystemC, décompressez l’archive dans un répertoire de votre de choix. Attention, ceci ne doit pas être un répertoire temporaire, mais un répertoire où vos projets qui utiliseront SystemC feront référence. Dans cet article j’ai choisis « C:\Bibliothèques\system-2.2.0 »

Contenu de la bibliothèque SystemC après désarchivage

Contenu de la bibliothèque SystemC après désarchivage

Compilation de la bibliothèque SystemC

La première chose à faire est de compiler la bibliothèque SystemC, pour cela :

  • Lancez Visual C++
  • Allez dans Fichier / Ouvrir / « Projet/Solution… »
  • Recherchez le répertoire où vous avez décompressé la bibliothèque SystemC (Ici C:\Bibliothèques\systemc-2.2.0)
  • Ouvrez le sous répertoire « msvc71 », puis « SystemC »
  • Sélectionnez le fichier solution SystemC.sln

La solution a été crée sous Visual Studio 2003, pour les utilisateurs de la version 2005 et 2008, un assistant de convertion devrait apparaître.

Assistant de conversion d'un projet Visual C++

Assistant de conversion d'un projet Visual C++

  • Cliquez sur « Suivant ».
  • Choisir « Non » pour ne pas sauvegarder la solution au format Visual Studio 2003.
  • Cliquez sur « Suivant ».
  • Cliquer sur « Terminer ».
  • Déselectionnez la case « Afficher le journal de conversion lors de la fermeture de l’Assitant ».
  • Cliquez sur « Fermer »

Vous disposez maintenant d’un projet intitulé SystemC dans l’explorateur de solution. (Choisissez dans le menu Affichage, « Explorateur de solution » pour afficher ce dernier).

Maintenant faites un clic droit sur ce projet, et choisissez « Générer ».

Génération de la bibliothèque SystemC

Génération de la bibliothèque SystemC

Allez ensuite prendre un café…

La compilation peut engendrer plusieurs warnings, cela ne posera en aucun cas des problèmes pour le développement de vos applications en SystemC.

Une fois la compilation terminée.

  • Fermer la solution (via Fichier / Fermer la solution).
  • Créez un sous-dossier dans le répertoire « systemc-2.2.0 » et nommez-le « lib ».
  • Allez dans le répertoire de compilation : « systemc-2.2.0\msvc71\SystemC\Debug »
  • Copier le fichier « SystemC.lib » dans le sous-répertoire « lib » crée précédemment.
  • Pour gagner de la place, vous pouvez supprimer le sous répertoire « msvc71 ».
Bibliothèque SystemC compilée

Bibliothèque SystemC compilée

Création d’un projet SystemC

Dans cette partie, je vais vous expliquer comment créer un projet qui utilisera la bibliothèque SystemC. Etant donné qu’il y a pas mal de réglage à faire, nous allons donc enregistrer ces derniers dans une feuille de propriété afin de les réutiliser dans d’autres projets.

Création d’un projet

  • Allez dans Fichier / Nouveau / « Projet… »
  • Choisissez à gauche dans l’arborescence « C++ / Win32 ».
  • A droite, choisissez « Application Console Win32 » comme type de projet.
  • Choisissez l’emplacement où sera stocké votre solution.
  • Donnez un nom à votre projet
Création d'un projet C++

Création d'un projet C++

  • L’assistant « Application Win32 » s’ouvre.
  • Cliquez sur « Suivant ».
  • Vérifiez que « Application Console » a bien été choisi dans « Type d’application ».
  • Cochez la case « Projet Vide » dans « Options supplémentaires »
Paramétrage du type de projet Visual C++ à créer.

Paramétrage du type de projet Visual C++ à créer.

  • Cliquez sur « Terminer ».

Création et paramétrage d’une feuille de propriétés d’un projet.

Nous allons maintenant créer et ajouter une feuille de propriété qui contiendra tous les paramétrages nécessaires pour le développement d’une application SystemC.

  • Dans le menu Affichage, choisissez « Gestionnaire de propriétés ».
  • Dans la fenêtre « Gestionnaire des propriétés », faites un clic droit sur votre projet et choisissez : « Ajouter une nouvelle feuille de propriétés de projets… »
Ajout d'une nouvelle feuille de propriétés de projet...

Ajout d'une nouvelle feuille de propriétés de projet...

  • Donnez comme nom « SystemC »
  • Dans « Emplacement » spécifiez le répertoire où vous avez installé SystemC (C:\Bibliothèques\systemc-2.2.0).

Le fait d’enregistrer cette feuille de propriété dans ce répertoire, permettra à toutes vos applications SystemC de partager le même répertoire.

Paramétrage de la feuille de propriétés SystemC.

Nous allons maintenant procéder aux diverses réglages nécessaires au bon fonctionnement d’une application SystemC.

  • Dans le Gestionnaire de propriétés, déroulez l’arborescence de votre projet, et déroulez le dossier « Debug | Win32 ».
  • Sélectionnez la feuille de propriétés « SystemC ».
  • Faites un clic droit et choisissez « Propriétés ».

Création d’une macro « $(SYSTEMC) »

Dans un premier temps nous allons créer une macro « $(SYSTEMC) » qui contiendra le répertoire où est installé SystemC. Dans la suite nous utiliserons uniquement cette macro lorsque l’on voudra faire référence au répertoire SystemC.

  • Dans la fenêtre des « Propriétés », choisissez dans l’arborescence à gauche : « Macros utilisateur ».
  • Cliquez sur le bouton « Ajouter une macro »
  • Dans nom saisissez « SYSTEMC ».
  • Dans valeur saisissez le répertoire où est installé SystemC (ATTENTION : Ne mettez pas d’anti-slash à la fin !).
Création de la macro $(SYSTEMC)

Création de la macro $(SYSTEMC)

  • Cliquez ensuite sur le bouton OK.
  • Cliquez sur le bouton Appliquer. (Ne fermez donc pas la fenêtre !)

Paramétrage du répertoire include de SystemC.

  • Choisissez dans l’arborescence à gauche « C++ / Général ».
  • Sélectionnez l’option « Autres répertoires Include », un petit bouton apparait à droite, cliquez dessus.
  • Cliquez sur le bouton « Nouvelle ligne »
  • Saisissez alors : « $(SYSTEMC)\src »
Ajout du répertoire "Include" de SystemC

Ajout du répertoire "Include" de SystemC

  • Cliquez ensuite sur le bouton OK
  • Cliquez sur le bouton Appliquer.

Paramétrage de la bibliothèque runtime.

  • Si vous souhaitez profiter d’une des merveilles de Visual Studio qui est son débogueur, choisissez dans l’arborescence à gauche « C++ / Génération de code ».
  • Dans l’option « Bibliothèque runtime », choisissez « Débogage multithread (/MTd) ».
Paramétrage de la bibliothèque runtime du projet Visual C++

Paramétrage de la bibliothèque runtime du projet Visual C++

  • Cliquez sur le bouton Appliquer.

Paramétrage de l’édition de liens avec la bibliothèque SystemC.

  • Choisissez dans l’arborescence à gauche « Edition de liens / Entrée ».
  • Sélectionnez l’option « Dépendances supplémentaires », un petit bouton apparait à droite, cliquez dessus.
  • Saisissez : « $(SYSTEMC)\lin\SystemC.lib ».
Ajout de la bibliothèque "SystemC.lib" dans l'édition de liens

Ajout de la bibliothèque "SystemC.lib" dans l'édition de liens

  • Cliquez ensuite sur le bouton OK
  • Cliquez sur le bouton Appliquer.

Paramétrage de la méthode de représentation des pointeurs

Beaucoup de classes dans SystemC font des références mutuelles entre elles. Il faut alors activer une option supplémentaire dans Visual C++ pour autoriser une telle utilisation.

  • Choisissez dans l’arborescence à gauche « C++ / Ligne de commande ».
  • Dans la zone « Options supplémentaires » saisissez : « /vmg ».
Ajout de l'option "/vmg"

Ajout de l'option "/vmg"

  • Cliquez sur le bouton Appliquer.

Fin de la création de la feuille de propriétés

Vous pouvez maintenant cliquer sur le bouton « OK » pour fermer la fenêtre des propriétés de la feuille de projet SystemC.

Paramétrage du projet SystemC

Par défaut, lorsque vous créez un projet, Visual Studio spécifie des propriétés par défaut qui « écrasent » les paramètres de notre feuille de propriétés SystemC crée précédement.

  • Sélectionnez votre projet dans le « Gestionnaire de propriétés ».
  • Faites un clic droit et sélectionnez l’option « Propriétés ».

Paramétrage de la bibliothèque runtime.

  • Choisissez dans l’arborescence à gauche « C++ / Génération de code ».
  • Dans l’option « Bibliothèque runtime », choisissez « <hériter des paramètres par défaut du parent ou du projet> ».

Héritage des paramètres par défaut du parent ou du projet

Héritage des paramètres par défaut du projet pour la propriété "Bibliothèque runtime"

  • Cliquez sur le bouton Appliquer.
  • « Débogage multithread (/MTd) » devrait maintenant apparaitre en caractères normal.

Paramétrage du niveau d’avertissement.

La bibliothèque SystemC n’utilise pas les fonctions standard sécurisée de Microsoft, des warnings risqueront d’être affichés durant la compilation de votre application. Pour cela nous allons diminuer le niveau d’alerte des erreurs de compilation.

Dans notre feuille de propriétés par défaut le niveau de warning était à « 1 ». Visual Studio a spécifié lors de la création de votre projet le niveau « 3 ».

  • Choisissez dans l’arborescence à gauche « C++ / Général ».
  • Dans l’option « Niveau d’avertissement », choisissez « <hériter des paramètres par défaut du parent ou du projet> ».
Héritage des paramètres du projet pour le niveau d'avertissement du compilateur

Héritage des paramètres du projet pour le niveau d'avertissement du compilateur

  • Cliquez sur le bouton Appliquer.
  • « Niveau 1 (/W1) » devrait maintenant apparaitre en caractères normal.

Fin du paramétrage de votre projet SystemC.

Vous pouvez maintenant cliquer sur le bouton « OK » pour fermer la fenêtre des propriétés de la feuille de projet SystemC.

Maintenant à vous de coder ! Et n’hésitez surtout pas à utiliser le débogueur de Visual C++ !

Réutilisation de la feuille de propriétés

Si vous souhaitez créer de nouveaux projets SystemC, il vous faudra :

  • Créez un projet SystemC comme ceci est expliqué dans la partie : « Création d’un projet SystemC« .
  • Dans le « Gestionnaire de propriétés », faites un clic droit sur votre projet et choisissez « Ajouter une feuille de propriétés existante… ».
Ajout d'une feuille de propriétés déjà existante.

Ajout d'une feuille de propriétés déjà existante.

  • Recherchez l’emplacement où vous avez stockez la feuille de propriétés (Précédemment, elle a été enregistrée dans : C:\Bibliothèques\systemc-2.2.0\SystemC.vsprops).
  • Cliquez sur Ouvrir.
  • Reproduisez le « Paramétrage du projet SystemC » comme expliqué précédemment.

Remerciements

Je tiens à remercier Mehdi AICHOUCH pour la relecture de cet article.

Téléchargements

Publié dans la catégorie Visual Studio.
Tags : , . TrackBack URL.