Mac OS X 10.7 (Lion) を搭載した MacBook で、C++ 言語で記述された Linux Ubuntu 10.4 で wxWidgets と OpenGL を使用して作成したプロジェクトをコンパイルしようとしています。この構成で wxWidgets をインストールしました。
$ arch_flags="-arch i386"
$ ../configure CFLAGS="$arch_flags" CXXFLAGS="$arch_flags" CPPFLAGS="$arch_flags" LDFLAGS="$arch_flags" OBJCFLAGS="$arch_flags" OBJCXXFLAGS="$arch_flags" --enable-unicode --enable-debug --disable-shared --with-macosx-sdk=/Developer/SDKs/MacOSX10.6.sdk --with-macosx-version-min=10.6 --with-opengl
コンパイルすると、多くの警告が表示されます。リンク段階でコンパイルが失敗します。
[...]
g++gcc-4.6.x `wx-config --cxxflags` -g -std=c++0x -c -o GUI.o GUI.cc
In file included from /opt/local/include/wx-2.8/wx/mac/glcanvas.h:4:0,
from /opt/local/include/wx-2.8/wx/glcanvas.h:60,
from Fenetre.h:5,
from GUI.cc:2:
/opt/local/include/wx-2.8/wx/mac/carbon/glcanvas.h:49:37: warning: ‘AGLDrawable’ is deprecated (declared at /System/Library/Frameworks/AGL.framework/Headers/agl.h:47) [-Wdeprecated-declarations]
/opt/local/include/wx-2.8/wx/mac/carbon/glcanvas.h:53:21: warning: ‘AGLDrawable’ is deprecated (declared at /System/Library/Frameworks/AGL.framework/Headers/agl.h:47) [-Wdeprecated-declarations]
[...]
g++gcc-4.6.x exerciceP13.o GUI.o Fenetre.o Vue_OpenGL.o Balle.o ChampForces.o Dessinable.o Exception.o Ressort.o Integrateur.o IntegrateurEuler.o ObjetMobile.o Obstacle.o Pendule.o PendulePlan.o PlanInfini.o Vecteur.o Systeme.o Balle3D.o PendulePlan3D.o Brique3D.o Brique.o PlanInfini3D.o Ressort3D.o Couleur.o IntegrateurNewmark.o Vent.o Ventilateur3D.o Trampoline3D.o IntRungKut.o ChampVitesse.o TapisRoulant3D.o PenduleSpherique.o Cylindre.o Cylindre3D.o `wx-config --libs gl,core,base` -o exerciceP13
g++gcc-4.6.x: error: i386: No such file or directory
g++gcc-4.6.x: error: unrecognized option ‘-arch’
make: *** [exerciceP13] Error 1
ここで私の Makefile とグラフィック クラス ヘッダーのインクルード:
CC = g++gcc-4.6.x
CXX = g++gcc-4.6.x
CXXFLAGS= `wx-config --cxxflags` -g -std=c++0x
LDLIBS = `wx-config --libs gl,core,base`
all: exerciceP13
exerciceP13: exerciceP13.o GUI.o Fenetre.o Vue_OpenGL.o Balle.o ChampForces.o Dessinable.o Exception.o Ressort.o Integrateur.o IntegrateurEuler.o ObjetMobile.o Obstacle.o Pendule.o PendulePlan.o PlanInfini.o Vecteur.o Systeme.o Balle3D.o PendulePlan3D.o Brique3D.o Brique.o PlanInfini3D.o Ressort3D.o Couleur.o IntegrateurNewmark.o Vent.o Ventilateur3D.o Trampoline3D.o IntRungKut.o ChampVitesse.o TapisRoulant3D.o PenduleSpherique.o Cylindre.o Cylindre3D.o
exerciceP13.o: exerciceP13.cc GUI.h
GUI.o: GUI.h GUI.cc Fenetre.h
Fenetre.o: Fenetre.h Fenetre.cc Vue_OpenGL.h
Vue_OpenGL.o: Vue_OpenGL.h Vue_OpenGL.cc Systeme.h Balle3D.h PendulePlan3D.h PlanInfini.h Brique3D.h PlanInfini3D.h Ressort3D.h IntegrateurEuler.h IntegrateurNewmark.h Ventilateur3D.h Trampoline3D.h Vent.h IntRungKut.h ChampVitesse.h TapisRoulant3D.h Cylindre3D.h
Balle.o: Balle.h Balle.cc ObjetMobile.h Vecteur.h
Brique.o: Brique.h Brique.cc Obstacle.h Vecteur.h ObjetMobile.h
ChampForces.o: ChampForces.h ChampForces.cc Vecteur.h Balle.h Dessinable.h
Dessinable.o: Dessinable.h Dessinable.cc
Exception.o: Exception.h Exception.cc
Integrateur.o: Integrateur.h Integrateur.cc ObjetMobile.h
IntegrateurEuler.o: IntegrateurEuler.h IntegrateurEuler.cc Integrateur.h ObjetMobile.h
ObjetMobile.o: ObjetMobile.h ObjetMobile.cc Vecteur.h Dessinable.h
Obstacle.o: Obstacle.h Obstacle.cc Vecteur.h ObjetMobile.h Dessinable.h
Pendule.o: Pendule.h Pendule.cc ObjetMobile.h Vecteur.h
PendulePlan.o: PendulePlan.h PendulePlan.cc Pendule.h Vecteur.h Balle.h
PlanInfini.o: PlanInfini.h PlanInfini.cc Vecteur.h Obstacle.h
Vecteur.o: Vecteur.h Vecteur.cc Exception.h
Systeme.o: Systeme.h Systeme.cc ObjetMobile.h Obstacle.h ChampForces.h Integrateur.h Dessinable.h
Balle3D.o: Balle3D.h Balle3D.cc Balle.h Couleur.h
PendulePlan3D.o: PendulePlan3D.h PendulePlan3D.cc PendulePlan.h Couleur.h
Brique3D.o: Brique3D.h Brique3D.cc Brique.h Couleur.h
PlanInfini3D.o: PlanInfini.h PlanInfini.cc PlanInfini.h Couleur.h
Ressort.o: Ressort.cc Ressort.h Vecteur.h ObjetMobile.h
Ressort3D.o: Ressort3D.cc Ressort3D.h Ressort.h Couleur.h
Couleur.o: Couleur.h Couleur.cc
IntegrateurNewmark.o: IntegrateurNewmark.h IntegrateurNewmark.cc Integrateur.h
Vent.o: Vent.cc Vent.h Vecteur.h Brique.h ObjetMobile.h ChampForces.h Ventilateur3D.h
Ventilateur3D.o: Ventilateur3D.h Ventilateur3D.cc Vecteur.h Vent.h Systeme.h Brique3D.h Dessinable.h
Trampoline3D.o: Trampoline3D.h Trampoline3D.cc Brique3D.h ObjetMobile.h Systeme.h Dessinable.h
ChampVitesse.o: ChampVitesse.h ChampVitesse.cc Vecteur.h ChampForces.h ObjetMobile.h Brique.h TapisRoulant3D.h
TapisRoulant3D.o: TapisRoulant3D.h TapisRoulant3D.cc Vecteur.h Brique3D.h Systeme.h ChampVitesse.h Dessinable.h
IntRungKut.o: IntRungKut.h IntRungKut.cc Integrateur.h ObjetMobile.h Vecteur.h
PenduleSpherique.o: PenduleSpherique.h PenduleSpherique.cc Pendule.h Vecteur.h
Cylindre.o: Cylindre.h Cylindre.cc Vecteur.h Obstacle.h ObjetMobile.h
Cylindre3D.o: Cylindre3D.h Cylindre3D.cc Vecteur.h Couleur.h Cylindre.h
clean:
rm -f *.o
内容:
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "wx/glcanvas.h" // Pour combiner wxWidgets et OpenGL