Bonjour,

Je suis débutant en C++ et wxWidgets et j'ai un problème de compilation :

J'obtiens le résultat suivant dans VC++:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
1>Toile_GL.obj : error LNK2019: symbole externe non résolu "public: virtual __thiscall wxGLCanvas::~wxGLCanvas(void)" (??1wxGLCanvas@@UAE@XZ) référencé dans la fonction __unwindfunclet$??0Toile_GL@@QAE@PAVwxWindow@@PBDHH_N@Z$0
1>Toile_GL.obj : error LNK2019: symbole externe non résolu "public: __thiscall wxGLCanvas::wxGLCanvas(class wxWindow *,int,class wxPoint const &,class wxSize const &,long,class wxString const &,int *,class wxPalette const &)" (??0wxGLCanvas@@QAE@PAVwxWindow@@HABVwxPoint@@ABVwxSize@@JABVwxString@@PAHABVwxPalette@@@Z) référencé dans la fonction "public: __thiscall Toile_GL::Toile_GL(class wxWindow *,char const *,int,int,bool)" (??0Toile_GL@@QAE@PAVwxWindow@@PBDHH_N@Z)
1>Toile_GL.obj : error LNK2001: symbole externe non résolu "public: virtual class wxClassInfo * __thiscall wxGLCanvas::GetClassInfo(void)const " (?GetClassInfo@wxGLCanvas@@UBEPAVwxClassInfo@@XZ)
1>Toile_GL.obj : error LNK2001: symbole externe non résolu "protected: virtual struct wxEventTable const * __thiscall wxGLCanvas::GetEventTable(void)const " (?GetEventTable@wxGLCanvas@@MBEPBUwxEventTable@@XZ)
1>Toile_GL.obj : error LNK2001: symbole externe non résolu "protected: virtual class wxEventHashTable & __thiscall wxGLCanvas::GetEventHashTable(void)const " (?GetEventHashTable@wxGLCanvas@@MBEAAVwxEventHashTable@@XZ)
1>Toile_GL.obj : error LNK2019: symbole externe non résolu "public: virtual __thiscall wxGLContext::~wxGLContext(void)" (??1wxGLContext@@UAE@XZ) référencé dans la fonction "public: void __thiscall Toile_GL::initGL(void)" (?initGL@Toile_GL@@QAEXXZ)
1>Toile_GL.obj : error LNK2019: symbole externe non résolu "public: void __thiscall wxGLCanvas::SetCurrent(class wxGLContext const &)const " (?SetCurrent@wxGLCanvas@@QBEXABVwxGLContext@@@Z) référencé dans la fonction "public: void __thiscall Toile_GL::initGL(void)" (?initGL@Toile_GL@@QAEXXZ)
1>Toile_GL.obj : error LNK2019: symbole externe non résolu "public: __thiscall wxGLContext::wxGLContext(class wxGLCanvas *,class wxGLContext const *)" (??0wxGLContext@@QAE@PAVwxGLCanvas@@PBV0@@Z) référencé dans la fonction "public: void __thiscall Toile_GL::initGL(void)" (?initGL@Toile_GL@@QAEXXZ)
1>L:\internarration\western\C++\VC9++\Editeur\editeur0\Debug\editeur0.exe : fatal error LNK1120: 8 externes non résolus
J'ai compilé wxWidgets auparavant. J'utilise la version Unicode Debug des libraries plutôt que debug simple, qui provoque 42 erreurs au lieu des 9 ci-dessus.

J'ai lié dans les "Dépendances supplémentaires" du projet les librairies suivantes :

wxbase28ud.lib
wxbase28ud_net.lib
wxbase28ud_odbc.lib
wxbase28ud_xml.lib
wxexpatd.lib
wxjpegd.lib
wxmsw28ud_adv.lib
wxmsw28ud_aui.lib
wxmsw28ud_core.lib
wxmsw28ud_dbgrid.lib
wxmsw28ud_gl.lib
wxmsw28ud_html.lib
wxmsw28ud_media.lib
wxmsw28ud_qa.lib
wxmsw28ud_richtext.lib
wxmsw28ud_xrc.lib
wxpngd.lib
wxregexd.lib
wxzlibd.lib
wxtiffd.lib

Sinon le code qui pose problème est le suivant:

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
29
30
31
32
33
#ifndef TOILEGL_H
#define TOILEGL_H
 
#include "wx/wx.h"
#include <wx/glcanvas.h>
 
#include "gl/GLU.h"
 
#include "GestionDoc.h" // Un fichier perso
 
//Toile OpenGL
class Toile_GL
	: public wxGLCanvas
{
private:
	GestionDoc * GDoc;
 
	int largeur;
	int hauteur;
 
public:
	// Constructeur
	Toile_GL(wxWindow* parent, const char* nom, int larg, int haut, bool nouv = false);
 
	virtual ~Toile_GL() {};
 
	void initGL();	
 
	int getLarg();
	int getHaut();
};
 
#endif // TOILEGL_H
Visiblement, wxGLCanvas et wxGLContext ne sont pas reconnus par le compilateur malgré l'inclusion de wx/glcanvas.h .

Quelqu'un aurait-il une solution? Merci.

Eric 'Henn' Niubo