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 :

integrer un code C dans une application c++


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    Juin 2007
    Messages
    161
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Par d�faut integrer un code C dans une application c++
    Bonjour a tous.

    J'ai un code ecrit dans un nensemble de fichiers .c et .h et je veux l'appeler dans une application ecrite en c++ mais �a me g�n�re toujours des erreurs lors de la compilation.

    Comment puis-je proceder pour l'int�grer dans mon application.

    Est ce que je dois le convertir en C++ ou bien est ce qui'il exiqte une comma,nde qui permet la compilation � la fois d'un programme c et c++.

    Remarque: je travaille sous linux (suse10.3)

    Merci d'avance.

  2. #2
    Membre �m�rite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par d�faut
    Un copier-coller des messages d'erreur (et du code point� par ces messages) c'est toujours utile... Et puis il faudrait d�crire un peu plus le contexte. Cette biblio C c'est une biblio open-source? C'est de toi? C'est compil� s�par�ment ou pas?

  3. #3
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    De mani�re g�n�rale, si tu ins�re des fichiers sources �crits en "C pur", il faut indiquer au compilateur que cette partie bien particuli�re qui correspond � du code C "pur" doit �tre compil�e... en C, et qu'il faut �viter la d�coration des symboles qu'impliquerait une compilation en C++.

    Cela se fait g�n�ralement en introduisant une
    dans les d�clarations.
    L'id�al est donc, si tu as l'autorisation de modifier le fichier d'en-t�te de ton projet �crit en C de placer un
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    #ifdef __cplusplus__
    extern C
    {
    #endif
    avant la premi�re d�claration (mais apr�s la derni�re inclusion de fichier) et un
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    #ifdef __cplusplus__
    } 
    #endif
    apr�s la derni�re d�claration.

    Je n'ai jamais test�, mais *peut-�tre* pourrais tu �galement te contenter d'un code proche de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    extern C
    {
    #include "tonfichier.h"
    }
    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

  4. #4
    Membre �clair� Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par d�faut
    Salut,

    Citation Envoy� par koala01
    Je n'ai jamais test�, mais *peut-�tre* pourrais tu �galement te contenter d'un code proche de
    Code :

    extern C
    {
    #include "tonfichier.h"
    }
    Si je peux me permettre koala01

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    extern "C"
    {
    #include "tonfichier.h"
    }
    Il faut rajouter les "" autour du C, sinon ca fonctionne pas.
    Je confirme ce code fonctionne pour int�grer du C dans une appli C++, d�j� test�.

  5. #5
    Membre confirm�
    Inscrit en
    Juin 2007
    Messages
    161
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Par d�faut
    En fait le code en C est celui d'un ocr open source (gocr). il comporte plusieurs fichiers .c et .h

    et il est compil� avec les commandes suivantes:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    gcc -g -02 -DHAVE_CONFIG_H -c -o gocr.o gocr.c
    gcc -o gocr gocr.o ./libPgm2asc.a -lm -L.
    En ce qui concerne le code en c++ c'est une application de segmentation d'image. Dons elle utilise la biblioth�que opencv. La commande de compilation est la suivante:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    gcc -I/home/intel/opencv/include/opencv -L/home/intel/opencv/lib -lcv -lhighgui -lstdc++ application.cpp application
    Les deux programmes sont compil�s sans aucune erreur quand ils sont s�par�s mais j'ai pas trouv� la commande qui les compile les deux ensembles.

    Merci de m'aider � faire cette int�gration.


  6. #6
    Membre �m�rite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par d�faut
    C'est ce � quoi je pensais. En d�pis du fait que tu n'aies toujours pas coll� les messages d'erreur, ma boule de cristal me susurre que �a n'a rien � voir avec une erreur de compilation mais une erreur de link. Il faut lier la biblioth�que statique de gocr � ton programme.

  7. #7
    Membre confirm�
    Inscrit en
    Juin 2007
    Messages
    161
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Par d�faut
    Salut et merci a vous tous.
    Leprobl�me est r�solu.

    J'ai inclus le code ecrit en C comme ceci:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    extern "C"
    {
    #include "include/gocr.h"
    #include "include/gocr.c"
    }
    Puis j'ai compiler avec les commandes suivantes:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    gcc -g -O2  -DHAVE_CONFIG_H -I/home/intel/opencv/include/opencv -L/home/intel/opencv/lib -lcv -lhighgui -lstdc++ -c -o monprog.o monprog.cpp
     
    g++ -I/home/intel/opencv/include/opencv -L/home/intel/opencv/lib -lcv -lhighgui -lstdc++ -o monprog monprog.o ./libPgm2asc.a -lm   -L.

    Remarque: J'utilise dans mon code la biblioth�que opencv.


    Merci.


  8. #8
    Membre actif
    Homme Profil pro
    �tudiant
    Inscrit en
    Avril 2011
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 27
    Par d�faut Window xp/int�gr� gocr sur visual studio cpp 2008
    Bonjour � tous,j'ai un soucis que je n'arrive pas � g�rer .J'ai su int�gr� opencv sur visual studio 2008 mais j'ai du mal � le faire avec gocr.Comment int�gr� gocr sur visual studio 2008 (cpp).J'ai vraiment besoin de �a pour tester la sortie d'une extraction des donn�es d'une image....Please help me ...

  9. #9
    Membre Expert
    Homme Profil pro
    Inscrit en
    D�cembre 2010
    Messages
    734
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 734
    Par d�faut
    alors si tu veux plus de chance de r�ponses, �vite le d�terrage de sujet, commence un sujet avec ta question.
    pour l'int�grer...rajoute les headers dans l'inculdepath de ton projet, et pour ce qui est de compiler le fichiers d'impl�mentation C, ajoutes les en tant que sources C � ton projet.
    Si tu veux faire plus structur�, tu peux aussi cr�er une solution et d�finir un projet pour compiler l'OCR en C et un projet pour ton code client de l'OCR...

  10. #10
    Membre actif
    Homme Profil pro
    �tudiant
    Inscrit en
    Avril 2011
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 27
    Par d�faut Probl�me r�solu!
    Je pensais m�me pas avoir une r�ponse de si t�t... .J'ai r�gl� mon probl�me merci....J'aurais d� effectivement ouvrir un sujet dessus! .

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. int�grer du code R dans une application java
    Par supcomingenieur dans le forum R
    R�ponses: 3
    Dernier message: 04/06/2013, 13h48
  2. Utiliser un code MATLAB dans une application Android
    Par Spydeus dans le forum MATLAB
    R�ponses: 5
    Dernier message: 17/11/2011, 01h07
  3. Int�gration du code Ruby dans une application web Java
    Par L'aigle de Carthage dans le forum D�veloppement Web en Java
    R�ponses: 0
    Dernier message: 04/06/2011, 00h28
  4. integrer un module jaas dans une application swing
    Par riadhhwajdii dans le forum S�curit�
    R�ponses: 0
    Dernier message: 11/11/2009, 10h56
  5. R�ponses: 3
    Dernier message: 23/12/2008, 22h34

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