Android VLC beta compile error

Android VLC beta compile error

stdout/stderr로 나오는 에러가 너무 많아서 파악하기가 쉽지 않지만

 

1. prerequisite tools

libtool이 설치되어있지 않으면

어쩌고.. 하는 에러와 이 비슷한 에러들이 난다.

 

2. prerequisite libraries:

2.1. gmp를 설치해주어야 한다.  (contrib/gmp에 있는 것과는 별개)

http://gmplib.org/에서 gmp를 다운받은 뒤

로 configure한 뒤 make install하면 된다.
–prefix의 위치에 주의하자.

경우에 따라 아래 3.의 bug fix와 4.7 이상 버젼의 gcc를 이용할 필요가 있다. (gmp 5.1.2에서 gcc 4.4.3은 실패)

 

2.2. libnettle 2.5를 다운받아서 설치해야한다.

2.2. 그 이외 잡다한 library들을 설치해 주어야 한다.

이것은 근본적으로 contrib폴더에 있는 라이브러리들이 compile.sh를 실행할 때 제대로 설치되지 않기 때문이다.

하지만 vlc에서 library에 수정을 가했는지, contrib폴더에 있는 source들은 제대로 설치되지 않는 경우가 대부분이기에 그냥 직접 최신버젼을 다운받아서 설치해주는게 속 편하다.

2.2.1 libnettle-2.5 : ftp://ftp.lysator.liu.se/pub/security/lsh

그 이전에 gmp가 설치되어 있어야 한다. 그리고 nettle을 컴파일 할 때 gmp path를 제대로 못 잡으면 libhogweed가 설치되지 않는다. 따라서 반드시 gmp를 선행 설치하자.

그리고 뭔가 설정이 뒤틀린건지 그냥 ./configure하면 문제가 없는데 –host, CC= 등 옵션을 주면 컴파일 에러가 난다. 그래서 tools/Makefile을 열어서 다음과 같이 수정한다.

2.2.2 liba52 : http://liba52.sourceforge.net/

2.2.3 fribidi : http://www.fribidi.org/

2.2.4 libpng : ftp://ftp.simplesystems.org/pub/png/src/libpng15/

vlc에 들어있는 source처럼 1.5.14와 가까운 버젼을 사용할 것.

1.6.xx이상의 최신버젼을 사용하면 undefined reference to ‘inflagteReset2’ 에러가 난다.

2.2.5 libogg : http://www.xiph.org/downloads/

2.2.5 speedxdsp : http://www.speex.org/downloads/

libogg를 반드시 먼저 설치해야 한다.

2. Fix Makefiles

 

3. vlc/contrib/android/gmp 에 있는 gmp source에 버그가 있기 때문에

 http://gmplib.org/에서 최신버젼을 다운받아 대체해야한다.

는 해봤으나 아무 소용이 없었다. (4.2->5.1.2)

이것은 gmp/에 있는 makefile이 gmp/mpn/에 있는 어셈블리 파일 컴파일 규칙 (makeasm.am)을 읽어오지 못해서 생기는 문제이다.

해결하려면 gmp/mpn/Makeasm.am의 내용을 복사해다가 gmp/Makefile.am에 붙이면 된다.

사실 걍 x86으로 gmp를 컴파일할 때에는 딱히 생기지 않는 문제같은데 왜 이러는지 잘은 모르겠다.

gmp version을 5.0으로 업그레이드 하고 나서 없어졌다는 사람도 있는데 5.1.2에서 다시 생긴건지..

 

ref:

gmp bug, upgrade gmp:

http://stackoverflow.com/questions/16634508/gmp-compile-error-no-rule-to-make-target-mpn-add-n-lo-needed-by-libgmp-la

Leave a Reply