Bonjour,

Je suis en train d'essayer de compiler XBMC, qui est au passage un super media center ! J'avais réussi sous ubuntu (non sans mal) avec un tutoriel de ub ubuntu-fr.org

Voici mon problème : lorsque je lance le scrpt configure, plusieurs libriaries sont introuvables...
Configuring build.
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for ccache... /usr/bin/ccache
checking for gawk... gawk
checking for g++... g++
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
checking for main in -lGL... yes
checking for main in -lGLEW... yes
checking for main in -lGLU... yes
checking for main in -lXinerama... yes
checking for main in -lmad... yes
checking for main in -ltre... yes
checking for main in -logg... yes
checking for main in -lvorbis... yes
checking for main in -lSDL... yes
checking for main in -lSDL_image... yes
checking for main in -lSDL_mixer... yes
checking for main in -ldl... yes
checking for main in -lfreetype... yes
checking for main in -lfontconfig... yes
checking for main in -lbz2... yes
checking for main in -lfribidi... yes
checking for main in -llzo2... yes
checking for main in -lsqlite3... yes
checking for main in -lmysqlclient... no
configure: error: == Could not find a required library. Please see README.linux
Il manquait plus de librairies que ça (à la limite c'est normal), et j'ai donc installé certains packet :
glew-devel
lib-mad-devel
tre-devel
sdl_image-devel
J'ai donc procedé de la même manière pour mysql, et installé mysql-devel. D'ailleur si je vais dans /usr/lib/mysql j'ai :
total 8308
-rw-r--r-- 1 root root 12210 mar 4 17:41 libdbug.a
-rw-r--r-- 1 root root 51268 mar 4 17:41 libheap.a
-rw-r--r-- 1 root root 382144 mar 4 17:41 libmyisam.a
-rw-r--r-- 1 root root 30966 mar 4 17:41 libmyisammrg.a
-rw-r--r-- 1 root root 1650672 mar 4 17:41 libmysqlclient.a
-rw-r--r-- 1 root root 1662710 mar 4 17:41 libmysqlclient_r.a
lrwxrwxrwx 1 root root 26 jun 24 11:37 libmysqlclient_r.so -> libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root 26 jun 24 11:36 libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x 1 root root 1469028 mar 4 17:41 libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root 24 jun 24 22:30 libmysqlclient.so -> libmysqlclient.so.15.0.0
lrwxrwxrwx 1 root root 24 jun 24 22:31 libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwx------ 1 root root 1459328 mar 4 17:41 libmysqlclient.so.15.0.0
-rw-r--r-- 1 root root 1372066 mar 4 17:41 libmystrings.a
-rw-r--r-- 1 root root 331080 mar 4 17:41 libmysys.a
-rw-r--r-- 1 root root 14964 mar 4 17:41 libvio.a
-rw-r--r-- 1 root root 0 jun 24 23:24 listefichier.temp
-rwxr-xr-x 1 root root 12401 mar 4 17:41 mysqlbug
-rwxr-xr-x 1 root root 5521 mar 4 17:41 mysql_config
De même dans /usr/lib, j'ai
[root@localhost lib]# ls -l | grep libmysqlclient
lrwxrwxrwx 1 root root 26 jun 24 12:32 libmysqlclient.so -> mysql/libmysqlclient.so.15
lrwxrwxrwx 1 root root 23 jun 24 12:33 libmysqlclient.so.15 -> mysql/libmysqlclient.so
par contre, j'ai ceci avec ldconfig :
[root@localhost ld.so.conf.d]# ldconfig -v | grep mysql
/usr/lib/mysql:
libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
libmysqlpp.so.3 -> libmysqlpp.so.3.0.3
Je remarque que je n'ai pas de lien nomé libmysqlclient.so tout cours...


Jespère que quelqu'un aura une odée pour m'aider, ce problème étant je pense pas propre à XBMC

par ailleur, j'ai été plus loins dans le script (en commentant la partie sur mysql, et j'ai d'autre librairies qui sont manquantes alors que elle sont bien installée via yum.

Merci d'avance
Salut,

Fais un :
$ ./configure --help
et regarde le, voir poste le.

Si certaines bibliothèques sont déjà installées par yum mais ue le configure ne les trouve pas, tu peux essayer d'indiquer explicitement le chemin vers ces bibliothèques avec quelque chose comme :
$ ./configure --with-bibliothèque1=/chemin/vers/bibliothèque1 --with-bibliothèque2=/chemin/vers/bibliothèque2 ...etc
En fait tu dois avoir /usr/lib64/mysql/libmysqlclient.so dans mysql-devel
Cela signifie que tu dois ajouter -L/usr/lib64/mysql au chemin de recherche des bibliothèques mysql
Suivant quels outils sont utilisé pour compiler ton logiciel, tu peux ajouter une option au configure ou exporter une variable d'environnement lors du make...
voici le résultat de ./configure --help
`configure' configures "xbmc" 2.1 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']

Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/-xbmc-]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]

System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]

Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-debug enable debugging information (default is yes)
--enable-gl enable OpenGL rendering (default is yes)
--enable-profiling enable gprof profiling (default is no)
--enable-joystick enable SDL joystick support (default is yes)
--enable-xrandr enable XRandR support (default is yes)
--enable-mms enable libmms support (default is yes)
--enable-pcre enable PCRE based regular expression support
(default is yes)
--enable-halmount enable automounting feature (default is no)
--enable-ccache enable building with ccache feature (default is yes
if ccache is installed)

Some influential environment variables:
CXX C++ compiler command
CXXFLAGS C++ compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CC C compiler command
CFLAGS C compiler flags
CPP C preprocessor

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <bugs@xboxmediacenter.com>.
dans les options je ne voi rien qui ressemblerai à -with... :S
par contre peut être je devrais chercher en assignant les variables d'environement LIBS le chemin des librairies...
je n'ai pas le temps maintenant, mais je regarderai ça dans la soirée.

Merci de t'interesser a mon problème 😉
kwizart wrote:En fait tu dois avoir /usr/lib64/mysql/libmysqlclient.so dans mysql-devel
Cela signifie que tu dois ajouter -L/usr/lib64/mysql au chemin de recherche des bibliothèques mysql
Suivant quels outils sont utilisé pour compiler ton logiciel, tu peux ajouter une option au configure ou exporter une variable d'environnement lors du make...
en fait je n'ai pas de dossier lib64 (ma distribution est 32bits)

Le souci, c'est que je n'ai aps derreur lors du make, mais lors de la vérification des librairies par le script...

Merci quand même

sinon pas d'idée pour que ldconfig repertorie ces librairies?
xbmc sur linux est disponible pour les developpeurs dans un but de facilité de developpement il me semble...

sinon xbmc sur xbox c 'est pas mal...
n1ck0 wrote:xbmc sur linux est disponible pour les developpeurs dans un but de facilité de developpement il me semble...

sinon xbmc sur xbox c 'est pas mal...
Je sais que c'est putôt pour les developpeurs, mais il est tout de même fonctionel, j'ai eu l'ocasion de tester en janvier sous ubuntu 😉
Il est également fonctionnel sous windows, et cette fois ci un installeur est proposé, pas besoin de compiler soit même !

Et puis ce problème de compilation est pas propre à CE soft en particulier.

En fait j'aimerai "simplement" que libmysqlclient.so soit visibe dans ldconfig -v... (je pense que ça résoudrai mon souci.
Tu as bien un libmysqlclient.so qui ne pointe peut-être pas vers une bonne version de la bibliothèque recherchée.

Es-tu sûr d'avoir les bonnes versions des paquets pour les dépendances de la recompilation? Voir le fichier README du répertoire des sources.
aka Shiva wrote:Tu as bien un libmysqlclient.so qui ne pointe peut-être pas vers une bonne version de la bibliothèque recherchée.

Es-tu sûr d'avoir les bonnes versions des paquets pour les dépendances de la recompilation? Voir le fichier README du répertoire des sources.
Non justement, j'ai un libmysqlclient.so.15, et le script recherche un libmysqlclient.so tout cours...

J'ai tenter d'ajouter des liens symboliques dans /etc/lib, mais ça ne sufit pas (j'avoue que je ne maitrise pas du tout ce système de librairies.

Sinon j'ai tenter d'installer la version windows avec wine, mais c'est pas très stable :hammer:
/usr/lib/mysql
Sinon mets un lien symbolique :
ln -fs mysql/libmysqlclient.so /usr/lib/libmysqlclient.so
un lien symbolique n'a rien à faire dans /etc.
pardon, c'est bien dans dans usr/lib que j'ai mis mon lien, mais avec ln -s (je sais pas a quoi sert le -f) et ça ne changeai rien :S... Mais je vais ressayer.
je vien de tester c'est toujours pareil :/
Dans le readme ils ne parlent que d'Ubuntu... et j'ai pas envi d'utiliser Ubuntu !

EDIT : dans le readme, pour ubuntu, ils disent d'installer mysqlclient15 (celle que j'ai sur ma fedora)

Merci à ceux qui tentent de m'aider. Ce n'est pas très grave si je n'arrive pas à compiler ce soft, je prendrai un autre, mais ça m'...embette de pas réussir à compiler un truc !
Je vais essayer de voir ce que je peux faire au niveau packaging dès que j'ai un moment...
Que donne la commande
 ls -laZ /usr/lib/mysql
celmir wrote:Que donne la commande
 ls -laZ /usr/lib/mysql
elle donne :
[root@localhost /]# ls -laZ /usr/lib/mysql
drwxr-xr-x  root root system_u:object_r:lib_t:s0       .
drwxr-xr-x  root root system_u:object_r:lib_t:s0       ..
-rw-r--r--  root root system_u:object_r:lib_t:s0       libdbug.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libheap.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmyisam.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmyisammrg.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmysqlclient.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmysqlclient_r.a
lrwxrwxrwx  root root system_u:object_r:lib_t:s0       libmysqlclient_r.so -> libmysqlclient_r.so.15.0.0
lrwxrwxrwx  root root system_u:object_r:lib_t:s0       libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x  root root system_u:object_r:lib_t:s0       libmysqlclient_r.so.15.0.0
lrwxrwxrwx  root root unconfined_u:object_r:lib_t:s0   libmysqlclient.so -> libmysqlclient.so.15.0.0
lrwxrwxrwx  root root unconfined_u:object_r:lib_t:s0   libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwx------  root root system_u:object_r:lib_t:s0       libmysqlclient.so.15.0.0
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmystrings.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmysys.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libvio.a
-rw-r--r--  root root unconfined_u:object_r:lib_t:s0   listefichier.temp
-rwxr-xr-x  root root system_u:object_r:lib_t:s0       mysqlbug
-rwxr-xr-x  root root system_u:object_r:lib_t:s0       mysql_config
c'est agréable de trouver du monde qui peut aider 😉
lrwxrwxrwx root root unconfined_u:object_r:lib_t:s0 libmysqlclient.so -> libmysqlclient.so.15.0.0
as-tu fais un ln -sf ou pas ? si oui donne la commande exacte.
celmir wrote:
lrwxrwxrwx root root unconfined_u:object_r:lib_t:s0 libmysqlclient.so -> libmysqlclient.so.15.0.0
as-tu fais un ln -sf ou pas ? si oui donne la commande exacte.
Je n'avais refait le lien que dans lib (et pas dans le dossier mysql). Donc la je vien de le refaire : j'ai dabord virer les 2 liens symboliques (libmysqlclient.so et libmysqlclient.so.15) et j'ai enusite recréé ces liens avec ln -fs
J'ai fait :
[root@localhost mysql]# ln -fs libmysqlclient.so.15.0.0 libmysqlclient.so.15
[root@localhost mysql]# ln -fs libmysqlclient.so.15 libmysqlclient.so
Ce qui ne change pas le retour du ls :
[root@localhost mysql]# ls -laZ /usr/lib/mysql
drwxr-xr-x  root root system_u:object_r:lib_t:s0       .
drwxr-xr-x  root root system_u:object_r:lib_t:s0       ..
-rw-r--r--  root root system_u:object_r:lib_t:s0       libdbug.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libheap.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmyisam.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmyisammrg.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmysqlclient.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmysqlclient_r.a
lrwxrwxrwx  root root system_u:object_r:lib_t:s0       libmysqlclient_r.so -> libmysqlclient_r.so.15.0.0
lrwxrwxrwx  root root system_u:object_r:lib_t:s0       libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x  root root system_u:object_r:lib_t:s0       libmysqlclient_r.so.15.0.0
lrwxrwxrwx  root root unconfined_u:object_r:lib_t:s0   libmysqlclient.so -> libmysqlclient.so.15
lrwxrwxrwx  root root unconfined_u:object_r:lib_t:s0   libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwx------  root root system_u:object_r:lib_t:s0       libmysqlclient.so.15.0.0
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmystrings.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libmysys.a
-rw-r--r--  root root system_u:object_r:lib_t:s0       libvio.a
-rwxr-xr-x  root root system_u:object_r:lib_t:s0       mysqlbug
-rwxr-xr-x  root root system_u:object_r:lib_t:s0       mysql_config
J'ai juste une question : ça vien de moi ce petit souci de compilation? Ou c'est un problème dans le makefile/scrpt de compilation? ou un probleme de fedora?
Pour l'instant, on n'a pas encore fait le tour. 🙂 Pour le moins qu'on sache, tu n'as pas encore essayé de configurer en spécifiant le répertoire /usr/lib/mysql, comme suggéré plus haut, avec:

$ ./configure --with-mysql-lib=/usr/lib/mysql

N'oublie pas d'enlever le config.cache ou config.log à chaque fois que tu reconfigures...
aka Shiva wrote:Pour l'instant, on n'a pas encore fait le tour. 🙂 Pour le moins qu'on sache, tu n'as pas encore essayé de configurer en spécifiant le répertoire /usr/lib/mysql, comme suggéré plus haut, avec:

$ ./configure --with-mysql-lib=/usr/lib/mysql

N'oublie pas d'enlever le config.cache ou config.log à chaque fois que tu reconfigures...
Alors je vien de tester avec --with..., apres avoir supprimer config.log, et ça ne change rien :/
A tester juste au cas où
yum remove mysql-devel && yum install mysql-devel
touch /.autorelabel && reboot