2012-01-15 2 views
3

저는 현재 Windows 7 x64 PC를 사용하여 Android 용 NDK 프로젝트를 구축하고 있습니다. vs-android과 함께 Visual Studio 프로젝트에 Tremor Ogg/Vorbis 디코더 (SoundTouchRubberBand/FFTW3)를 컴파일하고 있습니다. 내가 한 것은 Cygwin에서 config.h 파일을 생성하는 것입니다. 모든 것이 잘 작동하는 것 같습니다. 그러나, 나는 전달하는 플래그가 가능한 한 최적의 호환 가능 플래그인지 확인하려고합니다../configure를 사용하여 Android 용 config.h를 생성 할 때 사용할 호스트 및 대상은 무엇입니까?

나는 build host and target 플래그 사이의 차이점을 이해하고 있지만 정확히 전달할 문자열을 모르겠다. 호스트와 대상이 정확히 같은 문자열을 사용해야합니까?

나는 그물 주위 명령 줄의 몇 가지 사례를 발견했지만, 그 차이없이 설명과 함께 :

--host=arm --target=arm-android-linux-uclibcgnueabi 

--host=arm-android-linux --target=arm-android-linux 

-–target=arm-eabi 

--target=arm-linux-androideabi --host=arm-linux-androideabi 

arm-linux-androideabi-4.4.3 (used in vs-android) 
--target=arm-androideabi4.4.3-linux -- host=target=arm-androideabi4.4.3-linux 

또한 ./autogen.sh 이상을 사용하는 옵션이 있습니다 ./configure, 다른 옵션으로 config.h를 생성합니다 ...

+0

질문에 대한 완전한 대답은 아니지만 컴파일러를 다루지 않는 한 --target을 전혀 사용하지 않아야합니다. --target은 여러분이 제공 한 링크에서 설명했듯이 GCC를 x86에서 실행하고 암을 위해 크로스 컴파일 할 수있게 해줍니다. Ogg/Vorbis 디코더가 코드를 생성합니까? 그렇지 않으면 - 목표는 의미가 없습니다. – hvd

답변

2

떨림은 config.h 파일을 사용하지 않습니다. 그러므로 진탕을 위해 ./configure를 실행할 필요가 없습니다. Android.mk 파일에 필요한 .c 파일을 포함하기 만하면됩니다.

구글이 안드로이드 소스에서 떨림을 어떻게 편집하는지보십시오. 다음은 Android.mk 파일을 포함하는 git 저장소에 대한 링크입니다. blog post에 Tremor에 LGPL 라이센스가 있다는 내용의 글이 있습니다. https://android.googlesource.com/platform/external/tremor.git

Btw 그건 잘못된 것입니다. Tremor는 BSD와 같은 라이센스를 가지고 있습니다. BSD는 LGPL보다 훨씬 더 편안한 용어입니다. LGPL은 기본적으로 라이브러리를 공유로 연결하거나 LGPL하에 모든 프로젝트를 만들 것을 요구합니다. BSD를 사용하면 정적 라이브러리로 링크하여 완료 할 수 있습니다.

실제로 ARM에는 떨림보다 더 빠른 vorbis 디코더 라이브러리가 있습니다. tremolo이라고합니다. BSD와 같은 최신 버전이기 때문에 떨림보다 빠르게 작동합니다.

+0

죄송합니다. SoundTouch와 Tremor 사이에 혼란 스럽습니다. 지금 당장 많은 것을하고 있습니다. 나의 원래 의문은 여전히있다. – BrokenTeapot

+0

링크가 자동으로 수정되었습니다. :). –