2011-11-22 9 views
5

Używam wersji 64-bitowej Lion, ale muszę skompilować 32-bitową wersję pliku ffmpeg, ponieważ inna biblioteka, której używam, jest dostępna tylko w wersji 32-bitowej. Próbowałem już wielu różnych konfiguracji, ale wszystkie dają mi błędy. Oto, co starałem:Nie można skompilować zgodnego i386 narzędzia ffmpeg dylibs w systemie Mac OS X

./configure --disable-statyczne --enable-shared --disable-outdev = SDL --disable-bzlib --disable-libfreetype --disable-libopenjpeg - enable-zlib --enable-runtime-cpudetect --arch = i386 --extra-cflags = "- arch i386" --extra-ldflags = "- arch i386" --target-os = darwin --enable-cross- Kompilacja

./configure --disable-static --enable-shared --disable-outdev = sdl --disable-bzlib --disable-libfreetype --disable-libopenjpeg --enable-zlib --enable-runtime -cpudetect --arch = i386 --extra-cflags = "- arch i386" --extra-ldflags = "- arch i386"

./configure --disable-static --enable-s hared --disable-outdev = SDL --disable-bzlib --disable-libfreetype --disable-libopenjpeg --enable-zlib --enable-runtime-cpudetect --arch = platformie x86_32

ja albo dostać błąd "zabrakło rejestrów podczas alokacji rejestru" podczas make lub gcc narzeka, że ​​kompilacja krzyżowa nie jest aktywna.

Odpowiedz

11

Udało mi się uzyskać to działając na ffmpeg build 08d2cee4 przy użyciu clang zamiast gcc. Oto linia konfiguracyjna, która działała:

./configure --disable-static --enable-shared --disable-outdev=sdl --enable-runtime-cpudetect --disable-bzlib --disable-libfreetype --disable-libopenjpeg --enable-zlib --cc="clang -m32" 

Dzięki Carlowi na libav-user!

Tu był mój wątek w przypadku, gdy ktoś pomaga: http://ffmpeg.org/pipermail/libav-user/2011-December/001013.html

0

Zastanawiam się - czy to było budowanie: libavcodec/h264_cabac.o?

Spróbuj dodać . IIRC, istnieje kilka wbudowanych zespołów gcc, które nie mogą uzyskać wystarczającej liczby rejestrów. Ta opcja zwalnia %ebp do wykorzystania jako rejestr ogólnego przeznaczenia.

+0

To prawda, zawsze jest na 'libavcodec/h264_cabac.o'. Próbowałem dodać '-fomit-frame-pointer' do' extra-cflags' i 'extra-ldflags', ale wciąż dostaję ten sam błąd. –

1

Możesz spróbować użyć flagi -m32, która mówi gcc do kompilacji tylko dla wersji 32-bitowej.

+0

powodzenia przy dodawaniu tego do 'extra-cflags' i' extra-ldflags' :-(Ten sam błąd o wyczerpywaniu się rejestrów –

+0

Ja również postępowałem zgodnie z poradami na http://lists.mplayerhq.hu/pipermail/mplayer -users/2011-August/083095.html, aby dodać -cc = "gcc -m32", ale otrzymałem ten sam wynik –

+0

Ups, przepraszam, że pominąłem to, co napisałeś o błędzie rejestrów. Prawdopodobnie nie ma to związku z 32-bitową flagą i musisz najpierw to wymyślić. – Jerry

0

rozwiązać błąd „zabrakło rejestrów podczas przydziału register” z --disable-ASM

może można spróbować.

Powiązane problemy