Cross-compilation

Cross-compilation de libavg

je veux faire l’operation de cross-compilation libavg-1.7.0
les etapes suivis sont:

$ sudo /usr/share/pdebuild-cross/xapt -a armel libpango1.0-dev libavformat-dev libavcodec-dev libswscale-dev python2.6-dev libboost-python-dev libboost-thread-dev libglu-dev libgl1-mesa-dev libgtk2.0-dev libglib2.0-dev libsdl-dev libxml2-dev libxxf86vm-dev libcairo-dev librsvg2-dev --force-yes

cat configure | sed s/-msse2// > configure.arm
mv configure.arm configure
chmod 755 configure

Edit src/base/Exception.cpp and replace debugBreak code by :
void debugBreak()
{
#ifndef arm
#ifdef _WIN32
__asm int 3;
#else
asm(“int $3”);
#endif
#else
asm(“swi 0x03”);
#endif

export PANGOFT2_CFLAGS="-I/usr/arm-linux-gnueabi/include/“
export PANGOFT2_LIBS=”-L/usr/arm-linux-gnueabi/lib/“
export GDK_PIXBUF_CFLAGS=”-I/usr/arm-linux-gnueabi/include/“
export GDK_PIXBUF_LIBS=”-L/usr/arm-linux-gnueabi/lib/“
export LIBRSVG_CFLAGS=”-I/usr/arm-linux-gnueabi/include/“
export LIBRSVG_LIBS=”-L/usr/arm-linux-gnueabi/lib/“
export FONTCONFIG_CFLAGS=”-I/usr/arm-linux-gnueabi/include/“
export FONTCONFIG_LIBS=”-L/usr/arm-linux-gnueabi/lib/“
export FFMPEG_CFLAGS=”-I/usr/arm-linux-gnueabi/include/“
export FFMPEG_LIBS=”-L/usr/arm-linux-gnueabi/lib/“
export BOOST_PYTHON_CFLAGS=”-I/usr/arm-linux-gnueabi/include/“
export BOOST_PYTHON_LIBS=”-L/usr/arm-linux-gnueabi/lib/“
export AVCODEC_LIBS=”-L/usr/arm-linux-gnueabi/lib/“
export AVCODEC_CFLAGS=”-I/usr/arm-linux-gnueabi/include/“
export MTDEV_LIBS=”-L/usr/arm-linux-gnueabi/lib/“
export MTDEV_CFLAGS=”-I/usr/arm-linux-gnueabi/include/“
export BOOST_THREAD_LIB=”-L/usr/arm-linux-gnueabi/lib/“
export BOOST_THREAD_CFLAGS=”-I/usr/arm-linux-gnueabi/include/"

export CROSSTOOL=arm-linux-gnueabi
export CXX=$CROSSTOOL-g+±4.4
export CC=$CROSSTOOL-gcc-4.4
export AR=$CROSSTOOL-ar
export AS=$CROSSTOOL-as

CFLAGS="-I/usr/arm-linux-gnueabi/include/gtk-2.0 -I/usr/arm-linux-gnueabi/include/glib-2.0" CXXFLAGS="-I/usr/arm-linux-gnueabi/include/gtk-2.0 -I/usr/arm-linux-gnueabi/include/glib-2.0/ -I/usr/arm-linux-gnueabi/lib/glib-2.0/include/ -I/usr/arm-linux-gnueabi/include/pango-1.0 -I/usr/arm-linux-gnueabi/include/cairo/ -I/usr/arm-linux-gnueabi/include/librsvg-2" LDFLAGS="-lgdk_pixbuf-2.0 -lavcodec -lavutil -lavformat -lswscale -lSDL -lpango-1.0 -lpangoft2-1.0 -lrsvg-2 " FREETYPE_LIBS=/usr/arm-linux-gnueabi/lib ./configure --target=arm-linux-gnueabi --host=arm-linux-gnueabi CC=arm-linux-gnueabi-gcc-4.4 CXX=$CROSSTOOL-g+±4.4 AR=arm-linux-gnueabi-ar TRIP=arm-linux-gnueabi-strip RANLIB=arm-linux-gnueabi-ranlib --with-sdl-prefix=/usr/arm-linux-gnueabi --prefix=/home/administrateur/Bureau/out

  1. make et make install

Lorsque j’exécute la commande make je recois le message d’erreur suivant:


make[3]: entrant dans le répertoire « /home/invitee/Bureau/conf/libavg-1.7.1/src/base »
CXX FileHelper.lo
CXX CmdLine.lo
CXX Exception.lo
CXX Logger.lo
CXX ConfigMgr.lo
CXX XMLHelper.lo
CXX TimeSource.lo
CXX OSHelper.lo
CXX ProfilingZone.lo
CXX ThreadProfiler.lo
CXX ScopeTimer.lo
CXX Test.lo
CXX TestSuite.lo
CXX ObjectCounter.lo
CXX Point.lo
CXX Directory.lo
CXX DirEntry.lo
CXX StringHelper.lo
CXX MathHelper.lo
CXX GeomHelper.lo
CXX CubicSpline.lo
CXX BezierCurve.lo
CXX UTF8String.lo
CXX Triangle.lo
CXX Triangulate.lo
CXX WideLine.lo
CXX Triple.lo
CXX Backtrace.lo
CXX Matrix3x4.lo
CXX ProfilingZoneID.lo
CXXLD libbase.la
CXX testbase.o
CXXLD testbase
/usr/lib/gcc/arm-linux-gnueabi/4.4.5/…/…/…/…/arm-linux-gnueabi/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make[3]: *** [testbase] Erreur 1
make[3]: quittant le répertoire « /home/invitee/Bureau/conf/libavg-1.7.1/src/base »
make[2]: *** [all-recursive] Erreur 1
make[2]: quittant le répertoire « /home/invitee/Bureau/conf/libavg-1.7.1/src »
make[1]: *** [all] Erreur 2
make[1]: quittant le répertoire « /home/invitee/Bureau/conf/libavg-1.7.1/src »
make: *** [all-recursive] Erreur


Information sur la distrubition
noyau employé : Linux debian 2.6.32-5-686 #1 SMP Mon Feb 25 01:04:36 UTC 2013 i686 GNU/Linux
lspci :
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC’97 Audio Controller (rev 01)
00:06.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0d.0 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 02)

merci d’avoir m’aider

ne serais ce pas le même problème que celui ci ?
stackoverflow.com/questions/2086 … -for-lstdc

le probleme est resolue mais il ya un autre message d’erreur :

ke[3]: quittant le répertoire « /home/invitee/Bureau/conf/libavg-1.7.1/src/video »
Making all in player
make[3]: entrant dans le répertoire « /home/invitee/Bureau/conf/libavg-1.7.1/src/player »
CXX OGLSurface.lo
CXX SDLDisplayEngine.lo
CXX Arg.lo
CXX AreaNode.lo
CXX RasterNode.lo
CXX DivNode.lo
CXX VideoNode.lo
CXX Player.lo
Player.cpp: In member function ‘avg::NodePtr avg::Player::loadMainNodeFromFile(const std::string&)’:
Player.cpp:456: warning: control reaches end of non-void function
CXX PluginManager.lo
CXX NodeRegistry.lo
CXX ArgBase.lo
CXX ArgList.lo
CXX DisplayEngine.lo
CXX Canvas.lo
CXX CanvasNode.lo
CXX OffscreenCanvasNode.lo
CXX MainCanvas.lo
CXX Node.lo
CXX MultitouchInputDevice.lo
CXX PanoImageNode.lo
CXX WordsNode.lo
CXX CameraNode.lo
CXX NodeDefinition.lo
CXX TextEngine.lo
CXX Timeout.lo
CXX Event.lo
CXX DisplayParams.lo
CXX CursorState.lo
CXX MaterialInfo.lo
CXX Image.lo
CXX ImageNode.lo
CXX EventDispatcher.lo
CXX KeyEvent.lo
CXX CursorEvent.lo
CXX MouseEvent.lo
CXX TouchEvent.lo
CXX AVGNode.lo
CXX TestHelper.lo
CXX TrackerInputDevice.lo
CXX TrackerTouchStatus.lo
CXX TrackerCalibrator.lo
CXX SoundNode.lo
CXX VectorNode.lo
CXX FilledVectorNode.lo
CXX LineNode.lo
CXX PolyLineNode.lo
CXX RectNode.lo
CXX CurveNode.lo
CXX PolygonNode.lo
CXX CircleNode.lo
CXX Shape.lo
CXX MeshNode.lo
CXX Contact.lo
CXX TouchStatus.lo
CXX OffscreenCanvas.lo
CXX FXNode.lo
CXX TUIOInputDevice.lo
CXX NullFXNode.lo
CXX BlurFXNode.lo
CXX ShadowFXNode.lo
CXX ChromaKeyFXNode.lo
CXX InvertFXNode.lo
CXX HueSatFXNode.lo
CXX VideoWriter.lo
CXX VideoWriterThread.lo
CXX SVG.lo
CXX SVGElement.lo
CXX LibMTDevInputDevice.lo
LibMTDevInputDevice.cpp:41:19: error: mtdev.h: Aucun fichier ou dossier de ce type
LibMTDevInputDevice.cpp:42:27: error: mtdev-mapping.h: Aucun fichier ou dossier de ce type
LibMTDevInputDevice.cpp: In destructor ‘virtual avg::LibMTDevInputDevice::~LibMTDevInputDevice()’:
LibMTDevInputDevice.cpp:58: error: ‘mtdev_close’ was not declared in this scope
LibMTDevInputDevice.cpp:59: warning: possible problem detected in invocation of delete operator:
LibMTDevInputDevice.cpp:59: warning: invalid use of incomplete type ‘struct mtdev’
LibMTDevInputDevice.h:35: warning: forward declaration of ‘struct mtdev’
LibMTDevInputDevice.cpp:59: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.
LibMTDevInputDevice.cpp: In member function ‘virtual void avg::LibMTDevInputDevice::start()’:
LibMTDevInputDevice.cpp:73: error: invalid use of incomplete type ‘struct mtdev’
LibMTDevInputDevice.h:35: error: forward declaration of ‘struct mtdev’
LibMTDevInputDevice.cpp:74: error: ‘mtdev_open’ was not declared in this scope
LibMTDevInputDevice.cpp:81: error: invalid use of incomplete type ‘struct mtdev’
LibMTDevInputDevice.h:35: error: forward declaration of ‘struct mtdev’
LibMTDevInputDevice.cpp:81: error: ‘MTDEV_POSITION_X’ was not declared in this scope
LibMTDevInputDevice.cpp:84: error: invalid use of incomplete type ‘struct mtdev’
LibMTDevInputDevice.h:35: error: forward declaration of ‘struct mtdev’
LibMTDevInputDevice.cpp:84: error: ‘MTDEV_POSITION_Y’ was not declared in this scope
LibMTDevInputDevice.cpp: In member function ‘virtual std::vector<boost::shared_ptravg::Event, std::allocator<boost::shared_ptravg::Event > > avg::LibMTDevInputDevice::pollEvents()’:
LibMTDevInputDevice.cpp:98: error: ‘mtdev_get’ was not declared in this scope
LibMTDevInputDevice.cpp:103: error: ‘ABS_MT_SLOT’ was not declared in this scope
make[3]: *** [LibMTDevInputDevice.lo] Erreur 1
make[3]: quittant le répertoire « /home/invitee/Bureau/conf/libavg-1.7.1/src/player »
make[2]: *** [all-recursive] Erreur 1
make[2]: quittant le répertoire « /home/invitee/Bureau/conf/libavg-1.7.1/src »
make[1]: *** [all] Erreur 2
make[1]: quittant le répertoire « /home/invitee/Bureau/conf/libavg-1.7.1/src »
make: *** [all-recursive] Erreur 1