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 :

Problème d'export/import de DLL


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut Problème d'export/import de DLL
    Bonjour,

    Je solicite votre aide car j'ai un problème de compilation lors de l'utilisation d'une DLL que j'ai créée.

    Je suis sous windows et j'utilise MinGW.

    Voici un code minimal reproduisant l'erreur.
    Dans un projet Base se trouve le code de ma DLL.

    base.hpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #ifndef BASE_HPP_
    #define BASE_HPP_
     
    #ifdef BUILDING_DLL
    #ifdef __GNUC__
    #define DLL_PUBLIC __attribute__((dllexport))
    #else
    #define DLL_PUBLIC __declspec(dllexport)
    #endif
    #else
    #ifdef __GNUC__
    #define DLL_PUBLIC __attribute__((dllimport))
    #else
    #define DLL_PUBLIC __declspec(dllimport)
    #endif
    #endif
     
    template <int N>
    class DLL_PUBLIC Base
    {
    public:
    	virtual void toto ()
    	{
    	}
    };
     
    #endif /* BASE_HPP_ */
    base.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "base.hpp"
    Le programme utilisant la DLL est seulement composé d'un main.cpp
    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <base.hpp>
     
    int main ()
    {
    	Base<0> t;
    	t.toto();
     
    	return 0;
    }
    La compilation de la DLL
    g++ -DBUILDING_DLL -O0 -g3 -Wall -c -fmessage-length=0 -obase.o ..\base.cpp
    g++ -shared -olibbase.dll base.o
    Build complete for project base

    La compilation du programme main
    g++ -IC:\Users\Loyann\Documents\eclipse_workspaces\dll\base -O0 -g3 -Wall -c -fmessage-length=0 -omain.o ..\main.cpp

    g++ -LC:\Users\Loyann\Documents\eclipse_workspaces\dll\main -omain.exe main.o -lbase

    main.o: dans la fonction « Base »:
    C:/Users/Loyann/Documents/eclipse_workspaces/dll/base/base.hpp:20: référence indéfinie vers « _imp___ZTV4BaseILi0EE »

    collect2: ld returned 1 exit status
    Build error occurred, build is stopped

    Peut-être un oubli de option de g++ dans la compilation de l'un des deux projets.

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 47
    Par défaut
    Les templates ne génèrent pas de code tant qu'ils ne sont pas instanciés.

    Tu pourrais faire une instanciation explicite de Base<0> dans base.cpp, comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include "base.hpp"
     
    template class Base<0>;
    Mais ça peut limiter les possibilités côté application, puisque toutes les valeurs de N utilisées par l'application doivent être prévues dans le dll.

Discussions similaires

  1. [10g] Problème d'export import
    Par Invité dans le forum Débuter
    Réponses: 6
    Dernier message: 18/04/2013, 10h42
  2. Problème d'export/import sur un number(3,2)
    Par lesageelu dans le forum Import/Export
    Réponses: 1
    Dernier message: 18/12/2008, 14h16
  3. [YES::ENGINE]Problème d'exportation dans une dll
    Par trecks dans le forum Moteurs 3D
    Réponses: 2
    Dernier message: 30/11/2007, 08h26
  4. Problème sur export import fromuser touser
    Par tomsawyer dans le forum Oracle
    Réponses: 3
    Dernier message: 19/12/2005, 11h15
  5. Réponses: 4
    Dernier message: 01/07/2004, 11h53

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