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 :

une librairie statique qui se compile en c et pas en c++


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 41
    Points
    41
    Par défaut une librairie statique qui se compile en c et pas en c++
    Bonjour,

    j'ai trouvé une librairie statique pour mingw qui permet d'utiliser facilement les WebBrowser sur ce site : http://www.apitalk.com/Windows+Progr...cplusplus.html

    Pour tester, j'ai recréé un projet sous code::blocks et j'ai rajouté la librairie.
    Mais quand je link, j'ai les messages d'erreur suivants :
    .objs\Main.o:Main.cpp: (.text+0x14a)||undefined reference to `CreateBrowserWindow(HWND__*)'|
    .objs\Main.o:Main.cpp: (.text+0x15d)||undefined reference to `OpenURL(HWND__*, char const*)'|
    .objs\Main.o:Main.cpp: (.text+0x1d3)||undefined reference to `DestroyBrowserWindow(HWND__*)'|
    ||=== Build finished: 3 errors, 0 warnings ===|

    Ce sont justement les fonctions de la librairie qui ne sont pas reconnues.
    Et avec le même programme, quand je compile en C et pas en C++, ça fonctionne.
    Est ce que c'est possible de transformer le fichier libwebbrowser.a pour que ça compile aussi en c++ ou est ce qu'il faut modifier une option pour que ça fonctionne?
    Toutes les solutions sont les bienvenue!

    Vous trouverez en pièce jointe le projet testIE1.cbp en c++ qui ne fonctionne pas et le projet testIE2.cbp qui fonctionne.

    merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Points : 533
    Points
    533
    Par défaut
    Je ne suis pas à 100% sur de moi, mais il me semble bien que ça a à voir avec le fait que le linkage ne se fait pas pareil en C et en C++.

    Donc, pour utiliser une bibli compilé en C dans un programme C++, il faut prévenir le compilateur en mettant toutes tes inclusions de ta bibliothèque dans un block
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    extern "C"
    {
    #include "mon_fichier.h"
    }
    Des recherches sous google devraient préciser les choses

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 41
    Points
    41
    Par défaut
    merci,
    rapide et efficace!
    ça fonctionne!

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

Discussions similaires

  1. Compiler une librairie statique
    Par yann458 dans le forum Visual C++
    Réponses: 1
    Dernier message: 03/12/2012, 16h09
  2. Réponses: 1
    Dernier message: 24/11/2012, 16h38
  3. Réponses: 4
    Dernier message: 28/05/2008, 19h31
  4. Réponses: 0
    Dernier message: 03/10/2007, 16h53
  5. Réponses: 1
    Dernier message: 20/06/2007, 12h34

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