2014-10-28 38 views
6

Android için LibVLC kullanmaya çalışıyorum ve talimatları https://wiki.videolan.org/AndroidCompile numaralı telefondan takip ettim ve ARM için mükemmel çalışmasını sağladım. x86 bunu derlemeye çalışırken Ancak, ben ayarlayın:x86 Yapı LibVLC for x86

ihracat ANDROID_ABI = x86

ve sonra aynı şekilde derlenmiş, ancak derlenmeyecektir olarak şimdi bir sorun var. İşte kesilmiş bir yapı günlüğü var:

Bildiğim kadarıyla söyleyebilirim
~/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 

, nedense o projede ARM başlıkları ve SSE başlıkları hem yeniden tanımlanacak hataya neden dahil edilmektedir. Ancak, neden veya neyi düzeltmeye çalışacağımı bilmiyorum. Herhangi bir öneri çok takdir edilecektir.

cevap

0

Autoconf tam olarak doğru görünmüyor, x86 derlemesinin NEON komut kümesiyle hiçbir ilgisi yoktur, dolayısıyla resample_neon.h dosyasını içermemelidir. Ben aşağıdaki satırları ../vlc-android/vlc/contrib/contrib-android-i686-linux-android/speexdsp/libspeexdsp altında açık resample.c, henüz ama hızlı bir çözüm için asıl nedenini bulup silmek değil:

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

sonra compile.sh yeniden çalıştırın, sizin x86 emülatörü için çalışan apk almalısınız/cihaz.

+0

Gerçekten bir git çekme yaptım ve tüm vlc-android paketimi güncelledim ve sorun gitti. Repo'yu ilk başta klonladığım ve düzeltmenin işe yarayacağı bir önceki işi yapmayı denedim. Yani bu, işlemlerden birinde sabitlenmiş gibi görünüyor. Teşekkürler! –