2011-11-22 39 views
5

Tôi đang chạy Lion 64 bit nhưng tôi cần biên dịch phiên bản ffmpeg 32 bit vì một thư viện khác tôi đang sử dụng chỉ khả dụng dưới dạng 32 bit. Tôi đã thử một số cấu hình khác nhau nhưng tất cả đều cho tôi lỗi. Đây là những gì tôi đã cố gắng:Không thể biên dịch các dylib ffmpeg tương thích i386 trên Mac OS X

./configure --disable tĩnh enable-chia sẻ --disable-outdev = SDL --disable-bzlib --disable-libfreetype --disable-libopenjpeg - enable-zlib --enable-runtime-cpudetect --arch = i386 --extra-cflags = "- kiến ​​trúc i386" --extra-ldflags = "- kiến ​​trúc i386" --target-os = darwin - có thể vượt qua- biên dịch

./configure --disable-static - có thể chia sẻ --disable-outdev = sdl --disable-bzlib --disable-libfreetype --disable-libopenjpeg --enable-zlib --enable-runtime -cpudetect --arch = i386 --extra-cflags = "- kiến ​​trúc i386" --extra-ldflags = "- vòm i386"

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

tôi hoặc là có được một "chạy ra khỏi đăng ký trong quá trình phân bổ đăng ký" lỗi trong khi thực hiện hoặc gcc than phiền rằng biên dịch chéo không hoạt động.

Trả lời

11

Tôi đã có thể làm việc này trên ffmpeg xây dựng 08d2cee4 bằng cách sử dụng tiếng kêu thay vì gcc. Vì vậy, đây là cấu hình dòng đã hoạt động:

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

Nhờ Carl trên người dùng libav!

Đây là chủ đề của tôi trong trường hợp nó giúp mọi người: http://ffmpeg.org/pipermail/libav-user/2011-December/001013.html

0

Tôi sẽ đoán tự nhiên - có phải tòa nhà đó là: libavcodec/h264_cabac.o?

Thử thêm . IIRC, có một số gcc inline lắp ráp mà không thể có được giữ đủ đăng ký. Tùy chọn này giải phóng %ebp để sử dụng làm mục đích đăng ký chung.

+0

đúng, luôn có trên 'libavcodec/h264_cabac.o'. Tôi đã thử thêm '-fomit-frame-pointer' vào' extra-cflags' và 'extra-ldflags' nhưng tôi vẫn gặp lỗi tương tự. –

1

Bạn có thể thử sử dụng cờ -m32 cho gcc để biên dịch chỉ 32 bit.

+0

không may mắn khi thêm điều này vào 'extra-cflags' và' extra-ldflags' :-(. Lỗi tương tự khi chạy hết thanh ghi. –

+0

Tôi cũng theo lời khuyên trên http://lists.mplayerhq.hu/pipermail/mplayer -users/2011-August/083095.html để thêm -cc = "gcc -m32" nhưng có cùng kết quả –

+0

Rất tiếc, tôi đã bỏ qua những gì bạn đã viết về lỗi đăng ký. Điều đó có thể không liên quan đến cờ 32 bit và – Jerry

0

tôi giải quyết lỗi "chạy ra khỏi thanh ghi trong phân bổ đăng ký" với --disable-asm

có lẽ bạn có thể thử nó.

Các vấn đề liên quan