2014-10-28 17 views
6

Ho cercato di utilizzare LibVLC per Android e ho seguito le istruzioni allo https://wiki.videolan.org/AndroidCompile e ho funzionato perfettamente per ARM. Tuttavia, quando si cerca di compilarlo a x86, ho impostato:Edificio LibVLC per x86

export ANDROID_ABI = x86

e poi compilati allo stesso modo, ma ora ho un problema in quanto non riesce a compilare. Ecco un log di compilazione troncato:

~/vlc-android$ sh compile.sh 
VLC source found 
Building tools 
You are ready to build VLC and its contribs 
Building the contribs 
Generating EGL pkg-config file 
Generating GLESv2 pkg-config file 
Guessing build system... x86_64-linux-gnu 
Creating configuration file... config.mak 
Bootstrap completed. 

... 

config.status: executing libtool commands 
Type "make; make install" to compile and install Speex 
cd speexdsp && make install 
make[1]: Entering directory `/home/user/vlc-android/vlc/contrib/contrib-android-i686-linux-android/speexdsp' 
Making install in libspeexdsp 
make[2]: Entering directory `/home/user/vlc-android/vlc/contrib/contrib-android-i686-linux-android/speexdsp/libspeexdsp' 
    CC  resample.lo 
In file included from resample.c:104:0: 
resample_neon.h:142:21: error: redefinition of 'inner_product_single' 
static inline float inner_product_single(const float *a, const float *b, unsigned int len) 
        ^
In file included from resample.c:100:0: 
resample_sse.h:40:21: note: previous definition of 'inner_product_single' was here 
static inline float inner_product_single(const float *a, const float *b, unsigned int len) 
        ^
make[2]: *** [resample.lo] Error 1 
make[2]: Leaving directory `/home/user/vlc-android/vlc/contrib/contrib-android-i686-linux-android/speexdsp/libspeexdsp' 
make[1]: *** [install-recursive] Error 1 
make[1]: Leaving directory `/home/user/vlc-android/vlc/contrib/contrib-android-i686-linux-android/speexdsp' 
make: *** [.speexdsp] Error 2 

Per quanto posso dire, in quel progetto, per qualche motivo entrambe le intestazioni ARM e le intestazioni SSE vengono inclusi, causando un errore di ridefinizione. Tuttavia, non so perché o cosa provare a risolverlo. Qualsiasi suggerimento sarebbe molto apprezzato.

risposta

0

Autoconf non sembra proprio a posto, x86 build non ha nulla a che fare con il set di istruzioni NEON quindi non dovrebbe includere resample_neon.h. Non ho ancora, ma per una soluzione rapida trovato la causa principale, aperto resample.c sotto ../vlc-android/vlc/contrib/contrib-android-i686-linux-android/speexdsp/libspeexdsp ed eliminare le seguenti righe:

... 
#ifdef _USE_NEON 
#include "resample_neon.h" 
#endif 
... 

quindi eseguire nuovamente il compile.sh, si dovrebbe ottenere un apk di lavoro per l'emulatore x86/dispositivo.

+0

In realtà ho fatto un pull git e aggiornato il mio intero pacchetto vlc-android e il problema è andato via. Ho provato a prelevare un commit precedente da quando originariamente ho clonato il repository e la tua correzione ha funzionato. Quindi sembra che questo sia stato risolto in uno dei commit. Grazie! –