Il y a quelques temps j'avais soumis un problème a la liste concernant la 
compilation de programmes qt 

rappel des faits :
#suite mise a jour version kde 3.1.4 sur suse 8.1
## recupere et installer les rpm sur le site suse (rpm -Uvh --nodeps --force
## *.rpm)
## Tout fonctionne normalement sauf la compilation.

#A travers kdevelop ou gideon d ailleur, message :
## "checking for Qt... ac_qt_includes : /usr/lib/qt3/include
## configure: error: Qt (>= Qt 3.0) (library qt-mt) not found. Please check
## your installation!

#En regardant dans le config.log, on voit :
## configure:23213: rm -rf SunWS_cache; g++ -o conftest -Wnon-virtual-dtor
## -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wwrite-strings
## -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion
## -Wchar-subscripts -fno-builtin -g3 -fno-inline -O0 -g3 -Wformat-security
## -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common
## -I/usr/ lib/qt3/include -I/usr/X11R6/include  -DQT_THREAD_SUPPORT 
## -D_REENTRANT  -L/ usr/lib/qt3/lib -L/usr/X11R6/lib   conftest.cc  -lqt-mt
## -lpng -lz -lm -ljpeg -ldl  -lXext -lX11 -lSM -lICE  -lpthread 1>&5
## /usr/lib/qt3/lib/libqt-mt.so: undefined reference to `FT_Seek_Stream'
## /usr/lib/qt3/lib/libqt-mt.so: undefined reference to `FT_Get_Short'
## /usr/lib/qt3/lib/libqt-mt.so: undefined reference to `FT_Forget_Frame'
## /usr/lib/qt3/lib/libqt-mt.so: undefined reference to `FT_Access_Frame'
## /usr/lib/qt3/lib/libqt-mt.so: undefined reference to `FT_Get_Long'

Avec la derniere version de kde 3.1.93 (kde3.2 beta1) le probleme 
persiste!!!...

Cela vient du fait que depuis la version 2.1.0 de freetype, certaines 
fonctions FT_xxx ont ete renommees et que la bibliotheque qt-mt a ete 
compilee avec une version anterieure aux changements.
Les changements sont :
  FT_Seek_Stream ==> FT_Stream_Seek
  FT_Get_Short ==> FT_Stream_GetShort
  FT_Forget_Frame ==> FT_Stream_ExitFrame
  FT_Access_Frame ==> FT_Stream_EnterFrame
  FT_Get_Long ==> FT_Stream_GetLong

Pour resoudre ce probleme(et avant de changer de version de suse), le moyen le 
plus rapide que j'ai trouvé est de reecrire les fonctions manquantes dans 
freetype2.

apres recup des sources de la derniere version de freetype2 
http://sourceforge.net/project/showfiles.php?group_id=3157
extraction sous le repertoire de votre choix
- se placer sous <repertoire de votre choix>/freetype-2.x.x/src/base
- editer le source ftstream.c
- rajouter les fonctions manquantes (les anciens noms executent les nouveaux) 
de cette façon :

  FT_BASE_DEF( FT_Error )
  FT_Seek_Stream( FT_Stream  stream,  FT_ULong   pos )
  {
    return FT_Stream_Seek( stream, pos );
  }
  
  FT_BASE_DEF( FT_Short )
  FT_Get_Short( FT_Stream  stream)
  {
    return FT_Stream_GetShort( stream );
  }

  FT_BASE_DEF( void )
  FT_Forget_Frame( FT_Stream  stream )
  {
    FT_Stream_ExitFrame( stream );
  }

  FT_BASE_DEF( FT_Error )
  FT_Access_Frame( FT_Stream  stream,  FT_ULong   count )
  {
    return FT_Stream_EnterFrame( stream, count );
  }

  FT_BASE_DEF( FT_Long )
  FT_Get_Long( FT_Stream  stream )
  {
   return FT_Stream_GetLong( stream );
  }

puis ./configure --prefix=/usr, make, make install(root)

Pas tres academique mais apres la compilation fonctionne a nouveau...


_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux
Archives: http://www.mail-archive.com/[EMAIL PROTECTED]
IRC: efnet.unixtech.be:6667 - #unixtech

Répondre à