IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

aide pour utiliser GNU common C++


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 65
    Points
    65
    Par défaut aide pour utiliser GNU common C++
    voila tous est dans le titre je voudrai savoir quels parametres passer au compilateur(g++) pour pouvoir compiler des projet utilisant "GNU common C++"?
    mais aussi comment integrer la lib a code::blocks. merci
    note:
    j'aimerai aussi avoir votre avis sur les differentes classe TTYstream,ttystream,et serial.laquel utilise?les avantages et les incoviniant de chacune.
    merci.

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Normalement, il va "suffire" de préciser au compilateur le dossier dans lequel aller chercher les fichiers d'en-tête avec le parametre -I (i majuscule) et d'indiquer à l'éditeur de liens dans quel dossier il trouvera la bibliothèque avec le paramètre -L ainsi que la bibliothèque à utiliser avec le paramètre -l (L minuscule), en omettant le "lib" du préfixe et le ".a" du suffixe

    Cela pourrait prendre la forme de (en considérant que la bibliothèque s'appelle libcommonc++.a)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -c fichier.cpp -I /dossier/ou/se/trouvent/les/en-tete -L/dossier/ou/se/trouve/la/lib -lcommonc++
    Si, comme je le pense, le but de la deuxième question est de savoir comment fournir ces informations à CB, tu peux - selon le cas:

    1. indiquer les chemins pour tous les projets que tu va créer en:
      • Passant par le menu "settings->compiler and debugger"
      • Ajoutant "commonc++" (meme convention que plus haut) dans l'onglet "linker settings"
      • Ajoutant le chemin d'accès (juste le dossier) vers les en-tête dans l'onglet "search directories", sous onglet "compiler"
      • Ajoutant le chemin d'accès (juste le dossier) vers la bibliothèque dans l'onglet "search directories", sous onglet "linker"
    2. indiquer les chemin pour le projet en cours, en ajoutant les mêmes informations, mais en passant par le menu "Project->build option".

      Tu aura alors le choix de personnaliser les informations en fonction des cibles: nom_du_projet s'appliquant à toutes les cibles issues du projet, les autres ne s'appliquant qu'aux "cibles intermédiaires".

      Il sera donc possible de choisir la version "debug" de la bibliothèque pour une cible particulière, et la version "relase" pour l'autre
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 65
    Points
    65
    Par défaut
    voila les erreurs que j'ai en compilant un petit projet qui crée un on objet ttystream.
    ||=== tty, Debug ===|
    /usr/include/c++/4.2/bits/stringfwd.h|48|erreur: patron avec liaison C|
    /usr/include/c++/4.2/bits/stringfwd.h|51|erreur: patron avec liaison C|
    /usr/include/c++/4.2/bits/stringfwd.h|54|erreur: patron avec liaison C|
    /usr/include/c++/4.2/bits/stringfwd.h|58|erreur: spécialisation de patron avec édition de liens C|
    /usr/include/c++/4.2/bits/stringfwd.h|63|erreur: spécialisation de patron avec édition de liens C|
    /usr/include/c++/4.2/cstring|80|erreur: «::memcpy» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|81|erreur: «::memmove» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|82|erreur: «::strcpy» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|83|erreur: «::strncpy» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|84|erreur: «::strcat» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|85|erreur: «::strncat» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|86|erreur: «::memcmp» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|87|erreur: «::strcmp» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|88|erreur: «::strcoll» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|89|erreur: «::strncmp» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|90|erreur: «::strxfrm» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|91|erreur: «::strcspn» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|92|erreur: «::strspn» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|93|erreur: «::strtok» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|94|erreur: «::memset» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|95|erreur: «::strerror» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|96|erreur: «::strlen» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|98|erreur: «::memchr» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring||In function «void* std::memchr(void*, int, size_t)»
    /usr/include/c++/4.2/cstring|102|erreur: invalid conversion from «const void*» to «void*»|
    /usr/include/c++/4.2/cstring|102|erreur: initializing argument 1 of «void* std::memchr(void*, int, size_t)»|
    /usr/include/c++/4.2/cstring|104|erreur: «::strchr» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|110|erreur: «::strpbrk» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|116|erreur: «::strrchr» n'a pas été déclaré|
    /usr/include/c++/4.2/cstring|122|erreur: «::strstr» n'a pas été déclaré|
    /usr/include/c++/4.2/bits/postypes.h|80|erreur: patron avec liaison C|
    /usr/include/c++/4.2/bits/postypes.h|94|erreur: patron avec liaison C|
    /usr/include/c++/4.2/bits/postypes.h|197|erreur: patron avec liaison C|
    /usr/include/c++/4.2/bits/postypes.h|202|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|54|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|57|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|60|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|63|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|66|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|69|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|73|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|77|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|81|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|85|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|88|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|91|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|94|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|97|erreur: patron avec liaison C|
    /usr/include/c++/4.2/iosfwd|100|erreur: patron avec liaison C|
    /usr/include/c++/4.2/bits/stl_pair.h|67|erreur: patron avec liaison C|
    /usr/include/c++/4.2/bits/stl_pair.h|94|erreur: patron avec liaison C|
    ||More errors follow but not being shown.|
    ||Edit the max errors limit in compiler options...|
    ||=== Build finished: 50 errors, 0 warnings ===|
    note: j'ai indiqué le dossier ou trouver les includes au comilateur.d

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    peux tu indiquer quelle commande tu as effectivement écrite pour ta compilation
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 65
    Points
    65
    Par défaut
    oui bien sur donc c g++ -I /usr/include/cc++/ main.c
    je suis sous ubuntu 8.04 et j'ai installé la lib via les paquets . voici mon code test aussi.
    #include <common.h>
    #include <serial.h>

    using namespace ost;

    int main()
    {
    ttystream picstream("/dev/ttyACM0:9600,7,e,1");
    return 0;
    }

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    cela va te parraitre dingue, mais, renomme ton fichier en main.cpp...

    En effet, classiquement, les fichiers en *.c sont compilés avec... le compilateur C (gcc) et non avec le compilateur C++ (g++), même si c'est ce dernier qui est invoqué

    Et, comme tu t'en doute, les template et autres namespace ne sont que très mal supportés par les compilateurs C
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par dillinger91 Voir le message
    oui bien sur donc c g++ -I /usr/include/cc++/ main.c
    je suis sous ubuntu 8.04 et j'ai installé la lib via les paquets . voici mon code test aussi.
    Il faut include <cc++/...> et pas jouer avec -I pour éviter de préciser le répertoire: la lib fournit entre autre un entete string.h qui replace l'entete standard du C quand tu essaies avec les effets que tu as vu.

    Citation Envoyé par koala01 Voir le message
    cela va te parraitre dingue, mais, renomme ton fichier en main.cpp...

    En effet, classiquement, les fichiers en *.c sont compilés avec... le compilateur C (gcc) et non avec le compilateur C++ (g++), même si c'est ce dernier qui est invoqué

    Et, comme tu t'en doute, les template et autres namespace ne sont que très mal supportés par les compilateurs C
    On n'aurait pas eu des messages d'erreurs qui indiquent que les templates ont ete reconnu comme tel. g++ compile bien un fichier .c comme du C++ (c'est une des deux grosses differences entre gcc et g++ comme driver, l'autre étant l'utilisation d'office des bibliothèques standard du C++ au moment du link). L'usage de .c comme extension pour le C++ est beaucoup moins répandue (pour dire, je ne le croyais plus utilisé en dehors de projets ayant une longue histoire) qu'avant, mais pas totalement inexistante.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  8. #8
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 65
    Points
    65
    Par défaut
    j'ai changé le nom des includes et aussi le parametre -I.donc sa devient #include<cc++/serial.h>
    et la c bon les erreurs en disparu. donc merci par contre si quelqu'un pouvait me fournir quelques examples sur l'itilisation des diferentes classes tty(TTYStream,ttystream,serial ......).
    sa serai simpa.mais bon je pense qu'il serai judicieux de faire un autre poste.
    merci je marque comme clos.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour utiliser RSA
    Par AsmCode dans le forum Sécurité
    Réponses: 1
    Dernier message: 26/08/2007, 19h11
  2. aide pour utilisation group by
    Par rlnd23 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/10/2006, 00h54
  3. Demande d'aide pour utilisation d'un QuickReport
    Par altadeos dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2006, 07h12
  4. de l'aide pour utiliser XSLT
    Par Diallos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/01/2006, 15h55
  5. Besoin d'aide pour utilisation des trie
    Par bluecurve dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2005, 08h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo