2014-10-28 13 views
6

Tôi đã cố gắng sử dụng LibVLC cho Android và tôi đã làm theo hướng dẫn tại https://wiki.videolan.org/AndroidCompile và làm cho nó hoạt động hoàn hảo cho ARM. Tuy nhiên, khi cố gắng để biên dịch nó để x86, tôi thiết lập:Xây dựng LibVLC cho x86

xuất khẩu ANDROID_ABI = x86

và sau đó biên soạn theo cùng một cách, nhưng bây giờ tôi có một vấn đề vì nó không biên dịch. Dưới đây là một cắt ngắn build log:

~/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 

Theo như tôi có thể nói, trong dự án mà vì một lý do cả các tiêu đề ARM và các tiêu đề SSE đang được bao gồm, gây ra một lỗi định nghĩa lại. Tuy nhiên, tôi không biết tại sao hoặc những gì để cố gắng sửa chữa nó. Bất kỳ đề xuất sẽ được nhiều đánh giá cao.

Trả lời

0

Autoconf trông không hoàn toàn đúng, x86 xây dựng không có gì để làm với tập lệnh NEON do đó không nên bao gồm resample_neon.h. Tôi đã không tìm thấy nguyên nhân gốc rễ chưa nhưng đối với một giải pháp nhanh chóng, mở resample.c dưới ../vlc-android/vlc/contrib/contrib-android-i686-linux-android/speexdsp/libspeexdsp và xóa những dòng sau:

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

sau đó chạy lại compile.sh, bạn sẽ nhận được một gói ứng dụng làm việc cho giả lập x86 của bạn/thiết bị.

+0

Tôi thực sự đã thực hiện thao tác kéo git và cập nhật toàn bộ gói vlc-android của mình và sự cố đã biến mất. Tôi đã cố gắng kéo một cam kết trước đó từ khi tôi ban đầu nhân bản repo và sửa chữa của bạn đã làm việc. Vì vậy, nó xuất hiện này đã được cố định trong một trong những cam kết. Cảm ơn! –