2016-03-13 2 views
0

Je suis à la recherche d'aide question délicate avec libtool tout en construisant cette bibliothèque: http://github.com/mspanc/vspecLibtool ne pas créer des liens symboliques d'information de version pendant le make install

Quand je construis sur ma boîte ubuntu 14.04, il fonctionne très bien, ajouter pendant le make install il crée des liens symboliques .so.VERSION_INFO appropriés. Cependant, lorsque j'essaie de le compiler à l'aide du système de construction Cerbero du projet GStreamer (http://cgit.freedesktop.org/gstreamer/cerbero/), qui amorce essentiellement les chaînes d'outils pour la compilation croisée, lors de make install, il crée uniquement des fichiers .so (pas de liens symboliques .so.VERSION_INFO) , mais seulement pour cette librairie, il le fait avec succès pour d'autres libs dans le même environnement de construction.

Apparemment, il doit y avoir une différence, mais je diff diffuse de vspec et d'autres projets qui s'installent correctement depuis un certain temps déjà et ne peuvent toujours pas comprendre quelle est la cause du problème.

J'ai trouvé ce script libtool dans la bibliothèque brisée générée lors de l'exécution ./configure --prefix /root/cerbero/dist/android_armv7 --libdir /root/cerbero/dist/android_armv7/lib --disable-maintainer-mode --disable-silent-rules --disable-introspection --host=arm-linux-androideabi a version_type=none tout celui qui a construit cette variable correctement réglé sur linux. Cette différence fait que libtool n'ajoute pas de liens symboliques plus tard.

Quelqu'un peut-il me donner ici un indice où devrais-je chercher ce qui provoque la reconnaissance de l'hôte invalide lors de la génération libtool?

Ci-dessous log de la marque de Cerbero installer:

Making install in src 
make[1]: Entering directory `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src' 
make[2]: Entering directory `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src' 
/bin/mkdir -p '/root/cerbero/dist/android_armv7/lib' 
/bin/bash ../libtool --mode=install /usr/bin/install -c libvspec-1.0.la '/root/cerbero/dist/android_armv7/lib' 
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.so /root/cerbero/dist/android_armv7/lib/libvspec-1.0.so 
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.lai /root/cerbero/dist/android_armv7/lib/libvspec-1.0.la 
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.a /root/cerbero/dist/android_armv7/lib/libvspec-1.0.a 
libtool: install: chmod 644 /root/cerbero/dist/android_armv7/lib/libvspec-1.0.a 
libtool: install: arm-linux-androideabi-ranlib /root/cerbero/dist/android_armv7/lib/libvspec-1.0.a 
/bin/mkdir -p '/root/cerbero/dist/android_armv7/share/vala/vapi' 
/usr/bin/install -c -m 644 libvspec-1.0.vapi libvspec-1.0.deps '/root/cerbero/dist/android_armv7/share/vala/vapi' 
/bin/mkdir -p '/root/cerbero/dist/android_armv7/include/libvspec-1.0' 
/usr/bin/install -c -m 644 libvspec.h '/root/cerbero/dist/android_armv7/include/libvspec-1.0' 
/bin/mkdir -p '/root/cerbero/dist/android_armv7/lib/pkgconfig' 
/usr/bin/install -c -m 644 libvspec-1.0.pc '/root/cerbero/dist/android_armv7/lib/pkgconfig' 
make[2]: Leaving directory `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src' 
make[1]: Leaving directory `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src' 
make[1]: Entering directory `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0' 
make[2]: Entering directory `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0' 
make[2]: Nothing to be done for `install-exec-am'. 
make[2]: Nothing to be done for `install-data-am'. 
make[2]: Leaving directory `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0' 
make[1]: Leaving directory `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0' 
Running command 'make install' 

Et la même commande sur mes ubuntu 14.04 boîte:

$ LC_ALL=C sudo make install 
Making install in src 
make[1]: Entering directory `/home/marcin/aktivitis/radiokit/vspec/src' 
make[2]: Entering directory `/home/marcin/aktivitis/radiokit/vspec/src' 
/bin/mkdir -p '/usr/local/lib' 
/bin/bash ../libtool --mode=install /usr/bin/install -c libvspec-1.0.la '/usr/local/lib' 
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.so.1.0.0 /usr/local/lib/libvspec-1.0.so.1.0.0 
libtool: install: (cd /usr/local/lib && { ln -s -f libvspec-1.0.so.1.0.0 libvspec-1.0.so.1 || { rm -f libvspec-1.0.so.1 && ln -s libvspec-1.0.so.1.0.0 libvspec-1.0.so.1; }; }) 
libtool: install: (cd /usr/local/lib && { ln -s -f libvspec-1.0.so.1.0.0 libvspec-1.0.so || { rm -f libvspec-1.0.so && ln -s libvspec-1.0.so.1.0.0 libvspec-1.0.so; }; }) 
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.lai /usr/local/lib/libvspec-1.0.la 
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.a /usr/local/lib/libvspec-1.0.a 
libtool: install: chmod 644 /usr/local/lib/libvspec-1.0.a 
libtool: install: ranlib /usr/local/lib/libvspec-1.0.a 
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /usr/local/lib 
---------------------------------------------------------------------- 
Libraries have been installed in: 
    /usr/local/lib 

If you ever happen to want to link against installed libraries 
in a given directory, LIBDIR, you must either use libtool, and 
specify the full pathname of the library, or use the `-LLIBDIR' 
flag during linking and do at least one of the following: 
    - add LIBDIR to the `LD_LIBRARY_PATH' environment variable 
    during execution 
    - add LIBDIR to the `LD_RUN_PATH' environment variable 
    during linking 
    - use the `-Wl,-rpath -Wl,LIBDIR' linker flag 
    - have your system administrator add LIBDIR to `/etc/ld.so.conf' 

See any operating system documentation about shared libraries for 
more information, such as the ld(1) and ld.so(8) manual pages. 
---------------------------------------------------------------------- 
/bin/mkdir -p '/usr/local/share/vala/vapi' 
/usr/bin/install -c -m 644 libvspec-1.0.vapi libvspec-1.0.deps '/usr/local/share/vala/vapi' 
/bin/mkdir -p '/usr/local/include/libvspec-1.0' 
/usr/bin/install -c -m 644 libvspec.h '/usr/local/include/libvspec-1.0' 
/bin/mkdir -p '/usr/local/lib/pkgconfig' 
/usr/bin/install -c -m 644 libvspec-1.0.pc '/usr/local/lib/pkgconfig' 
make[2]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec/src' 
make[1]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec/src' 
make[1]: Entering directory `/home/marcin/aktivitis/radiokit/vspec' 
make[2]: Entering directory `/home/marcin/aktivitis/radiokit/vspec' 
make[2]: Nothing to be done for `install-exec-am'. 
make[2]: Nothing to be done for `install-data-am'. 
make[2]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec' 
make[1]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec' 

Merci,

Marcin

Répondre